Files
htwkalender/services/data-manager/service/grpc/feedService.go

43 lines
848 B
Go

package grpc
import (
"context"
pb "htwkalender/common/genproto/modules"
"htwkalender/data-manager/service/db"
"github.com/pocketbase/pocketbase"
)
type FeedServiceHandler struct {
app *pocketbase.PocketBase
pb.UnimplementedFeedServiceServer
}
func (s *FeedServiceHandler) GetFeed(ctx context.Context, in *pb.GetFeedRequest) (*pb.GetFeedResponse, error) {
s.app.Logger().Info(
"Protobuf - GetFeed",
"uuid", in.Id,
)
// get feed from database by UUID
feed, err := db.FindFeedByToken(s.app, in.Id)
if err != nil {
return nil, err
}
pbFeed := feedToProto(feed)
// If feed has a user linked, fetch the user's email
if feed.User != "" {
user, err := s.app.FindRecordById("users", feed.User)
if err == nil && user != nil {
pbFeed.UserEmail = user.Email()
}
}
return &pb.GetFeedResponse{
Feed: pbFeed,
}, nil
}