mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2026-01-16 19:42:26 +01:00
43 lines
848 B
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
|
|
}
|