[server] More fixes for video preview API

This commit is contained in:
Neeraj Gupta
2024-10-01 22:34:11 +05:30
parent ca70c36ae0
commit 4f963f250f
2 changed files with 34 additions and 35 deletions

View File

@@ -72,7 +72,7 @@ func (h *FileHandler) GetFilesData(ctx *gin.Context) {
func (h *FileHandler) GetFileData(ctx *gin.Context) {
var req fileData.GetFileData
if err := ctx.ShouldBindJSON(&req); err != nil {
if err := ctx.ShouldBindQuery(&req); err != nil {
ctx.JSON(http.StatusBadRequest, ente.NewBadRequestWithMessage(err.Error()))
return
}
@@ -102,7 +102,7 @@ func (h *FileHandler) GetPreviewUploadURL(c *gin.Context) {
func (h *FileHandler) GetPreviewURL(c *gin.Context) {
var request fileData.GetPreviewURLRequest
if err := c.ShouldBindJSON(&request); err != nil {
if err := c.ShouldBindQuery(&request); err != nil {
handler.Error(c, stacktrace.Propagate(ente.ErrBadRequest, fmt.Sprintf("Request binding failed %s", err)))
return
}

View File

@@ -30,39 +30,38 @@ func (c *Controller) InsertVideoPreview(ctx *gin.Context, req *filedata.VidPrevi
return stacktrace.Propagate(sizeErr, "failed to validate size")
}
// Start a goroutine to handle the upload and insert operations
go func() {
obj := filedata.S3FileMetadata{
Version: *req.Version,
EncryptedData: req.Playlist,
DecryptionHeader: req.PlayListHeader,
Client: network.GetClientInfo(ctx),
}
logger := log.
WithField("objectKey", objectKey).
WithField("fileID", req.FileID).
WithField("type", ente.PreviewVideo)
size, uploadErr := c.uploadObject(obj, objectKey, bucketID)
if uploadErr != nil {
logger.WithError(uploadErr).Error("upload failed")
return
}
nonce := "na"
row := filedata.Row{
FileID: req.FileID,
Type: ente.PreviewVideo,
UserID: fileOwnerID,
Size: size + req.ObjectSize,
LatestBucket: bucketID,
ObjectID: &req.ObjectID,
ObjectNonce: &nonce,
}
dbInsertErr := c.Repo.InsertOrUpdatePreviewData(context.Background(), row, fileObjectKey)
if dbInsertErr != nil {
logger.WithError(dbInsertErr).Error("insert or update failed")
return
}
}()
//go func() {
obj := filedata.S3FileMetadata{
Version: *req.Version,
EncryptedData: req.Playlist,
DecryptionHeader: req.PlayListHeader,
Client: network.GetClientInfo(ctx),
}
logger := log.
WithField("objectKey", objectKey).
WithField("fileID", req.FileID).
WithField("type", ente.PreviewVideo)
size, uploadErr := c.uploadObject(obj, objectKey, bucketID)
if uploadErr != nil {
logger.WithError(uploadErr).Error("upload failed")
return nil
}
nonce := "na"
row := filedata.Row{
FileID: req.FileID,
Type: ente.PreviewVideo,
UserID: fileOwnerID,
Size: size + req.ObjectSize,
LatestBucket: bucketID,
ObjectID: &req.ObjectID,
ObjectNonce: &nonce,
}
dbInsertErr := c.Repo.InsertOrUpdatePreviewData(context.Background(), row, fileObjectKey)
if dbInsertErr != nil {
logger.WithError(dbInsertErr).Error("insert or update failed")
return nil
}
//}()
return nil
}