From 5612b593e258a966681297c04974d6368bf30171 Mon Sep 17 00:00:00 2001 From: Victor Lacasse-Beaudoin Date: Wed, 23 Aug 2023 15:26:01 -0400 Subject: [PATCH] =?UTF-8?q?Ajouter=20et=20impl=C3=A9menter=20models.V1Docu?= =?UTF-8?q?mentCreateResponse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api_handlers/api_handlers.go | 55 +++++++++++++++++++++--------------- models/responses.go | 9 ++++++ 2 files changed, 41 insertions(+), 23 deletions(-) diff --git a/api_handlers/api_handlers.go b/api_handlers/api_handlers.go index 8dede91..ceefded 100644 --- a/api_handlers/api_handlers.go +++ b/api_handlers/api_handlers.go @@ -178,21 +178,26 @@ func HandleV1BucketRead(c echo.Context) error { // HandleV1DocumentCreate permet d'ajouter un object dans un bucket, par multipart/form-data func HandleV1DocumentCreate(c echo.Context) error { + var response models.V1DocumentCreateResponse + var cfg config.Config if err := viper.Unmarshal(&cfg); err != nil { - return c.JSON(http.StatusInternalServerError, map[string]string{ - "error": err.Error(), - }) + response.StatusCode = http.StatusInternalServerError + response.Message = "Error during HandleV1DocumentCreate's echo#Context.FormFile" + response.Error = err.Error() + + return c.JSON(response.StatusCode, response) } bucket := c.Param("bucket") form_file, err := c.FormFile("document") if err != nil { - return c.JSON(http.StatusBadRequest, map[string]interface{}{ - "message": "Error during HandleV1DocumentCreate's echo#Context.FormFile", - "error": err, - }) + response.StatusCode = http.StatusBadRequest + response.Message = "Error during HandleV1DocumentCreate's echo#Context.FormFile" + response.Error = err.Error() + + return c.JSON(response.StatusCode, response) } allowed := false @@ -212,15 +217,20 @@ func HandleV1DocumentCreate(c echo.Context) error { mediaClient, err := media.NewMediaClientFromViper() if err != nil { - return c.JSON(http.StatusInternalServerError, map[string]string{ - "message": "Error during media.NewMediaClientFromViper()", - "error": err.Error(), - }) + response.StatusCode = http.StatusInternalServerError + response.Message = "Error during media.NewMediaClientFromViper()" + response.Error = err.Error() + + return c.JSON(response.StatusCode, response) } src, err := form_file.Open() if err != nil { - return err + response.StatusCode = http.StatusBadRequest + response.Message = "Error during form_file.Open()" + response.Error = err.Error() + + return c.JSON(response.StatusCode, response) } defer src.Close() @@ -237,19 +247,18 @@ func HandleV1DocumentCreate(c echo.Context) error { ContentType: form_file.Header.Get("Content-Type"), }) if err != nil { - return c.JSON(http.StatusInternalServerError, map[string]string{ - "message": "Error during minio#PutObject", - }) + response.StatusCode = http.StatusInternalServerError + response.Message = "Error during minio#PutObject" + //response.Error = err.Error() + + return c.JSON(response.StatusCode, response) } - return c.JSON(http.StatusOK, map[string]interface{}{ - "message": "ok", - "info": map[string]interface{}{ - "bucket": info.Bucket, - "key": info.Key, - "size": info.Size, - }, - }) + response.StatusCode = http.StatusOK + response.Data.Bucket = info.Bucket + response.Data.Key = info.Key + response.Data.Size = info.Size + return c.JSON(response.StatusCode, response) } // HandleV1DocumentRead permet de lire le contenu d'un fichier et protentiellement de le télécharger diff --git a/models/responses.go b/models/responses.go index f1b9b9e..c759a6f 100644 --- a/models/responses.go +++ b/models/responses.go @@ -73,3 +73,12 @@ type V1BucketReadResponse struct { Keys []string } } + +type V1DocumentCreateResponse struct { + Response + Data struct { + Bucket string + Key string + Size int64 + } +} -- 2.45.2