Skip to content

Commit 1b45ba8

Browse files
committed
Implement 'get_video' api
1 parent 3cc9e75 commit 1b45ba8

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

internal/api/get_video.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package api
2+
3+
import (
4+
"context"
5+
"fmt"
6+
7+
"connectrpc.com/connect"
8+
"github.com/nandesh-dev/subtle/generated/ent/videoschema"
9+
"github.com/nandesh-dev/subtle/generated/proto/web"
10+
)
11+
12+
func (h WebServiceHandler) GetVideo(ctx context.Context, req *connect.Request[web.GetVideoRequest]) (*connect.Response[web.GetVideoResponse], error) {
13+
videoEntry, err := h.db.VideoSchema.Query().Where(videoschema.IDEQ(int(req.Msg.Id))).Only(h.ctx)
14+
if err != nil {
15+
return nil, fmt.Errorf("cannot get video entry from database, err: %v", err)
16+
}
17+
18+
subtitleEntries, err := videoEntry.QuerySubtitles().All(h.ctx)
19+
if err != nil {
20+
return nil, fmt.Errorf("cannot get subtitle entries from database, err: %v", err)
21+
}
22+
23+
subtitleIds := make([]int32, 0, len(subtitleEntries))
24+
for _, subtitleEntry := range subtitleEntries {
25+
subtitleIds = append(subtitleIds, int32(subtitleEntry.ID))
26+
}
27+
28+
return connect.NewResponse(&web.GetVideoResponse{
29+
Filepath: videoEntry.Filepath,
30+
SubtitleIds: subtitleIds,
31+
}), nil
32+
}

0 commit comments

Comments
 (0)