/
delete.go
47 lines (38 loc) · 930 Bytes
/
delete.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package main
import (
"context"
"fmt"
"log"
pb "github.com/viralparmarme/go-grpc-mongodb-blog/blog/proto"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"google.golang.org/protobuf/types/known/emptypb"
)
func (s *Server) DeleteBlog(ctx context.Context, in *pb.BlogId) (*emptypb.Empty, error) {
log.Printf("DeleteBlog was invoked with %v", in)
oid, err := primitive.ObjectIDFromHex(in.Id)
if err != nil {
return nil, status.Errorf(
codes.Internal,
"cannot parse ID",
)
}
res, err := collection.DeleteOne(ctx, bson.M{
"_id": oid,
})
if err != nil {
return nil, status.Errorf(
codes.Internal,
fmt.Sprintf("cannot delete object in DB: %v", err),
)
}
if res.DeletedCount == 0 {
return nil, status.Errorf(
codes.NotFound,
"blog was not found",
)
}
return &emptypb.Empty{}, nil
}