From 4f963f250f2b8ac7b5470fe563964aea8126fbfa Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Tue, 1 Oct 2024 22:34:11 +0530 Subject: [PATCH] [server] More fixes for video preview API --- server/pkg/api/file_data.go | 4 +- server/pkg/controller/filedata/video.go | 65 ++++++++++++------------- 2 files changed, 34 insertions(+), 35 deletions(-) diff --git a/server/pkg/api/file_data.go b/server/pkg/api/file_data.go index ecef9e7bd4..b7d5d97c5a 100644 --- a/server/pkg/api/file_data.go +++ b/server/pkg/api/file_data.go @@ -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 } diff --git a/server/pkg/controller/filedata/video.go b/server/pkg/controller/filedata/video.go index 524ec13c88..163379cdfa 100644 --- a/server/pkg/controller/filedata/video.go +++ b/server/pkg/controller/filedata/video.go @@ -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 }