-
Notifications
You must be signed in to change notification settings - Fork 0
/
post.resolvers.go
49 lines (38 loc) · 1.36 KB
/
post.resolvers.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
48
49
package graph
// This file will be automatically regenerated based on the schema, any resolver implementations
// will be copied through when generating and any unknown code will be moved to the end.
// Code generated by github.com/99designs/gqlgen version v0.17.36
import (
"context"
"fmt"
"github.com/dailytravel/x/community/graph/model"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
)
// Comments is the resolver for the comments field.
func (r *postResolver) Comments(ctx context.Context, obj *model.Post) ([]*model.Comment, error) {
var items []*model.Comment
_id, err := primitive.ObjectIDFromHex(obj.ID)
if err != nil {
return nil, err
}
cursor, err := r.db.Collection("comments").Find(ctx, bson.M{"object._id": _id, "object.type": "posts"})
if err != nil {
return nil, fmt.Errorf("error finding comments: %v", err)
}
defer cursor.Close(ctx)
for cursor.Next(ctx) {
var comment model.Comment
if err := cursor.Decode(&comment); err != nil {
return nil, fmt.Errorf("error decoding comment: %v", err)
}
items = append(items, &comment)
}
if err := cursor.Err(); err != nil {
return nil, fmt.Errorf("error iterating through comments: %v", err)
}
return items, nil
}
// Post returns PostResolver implementation.
func (r *Resolver) Post() PostResolver { return &postResolver{r} }
type postResolver struct{ *Resolver }