From 73b5ce1bc2dc3f3ebf67a167e90dd05595a5e1a7 Mon Sep 17 00:00:00 2001 From: Victor Lacasse-Beaudoin Date: Sat, 19 Aug 2023 15:35:56 -0400 Subject: [PATCH] =?UTF-8?q?Ajouter=20error=20handling=20=C3=A0=20api.API#U?= =?UTF-8?q?ploadDocument?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Créer moins d'objets UploadDocumentResponse --- api/api.go | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/api/api.go b/api/api.go index c6608a3..419ad41 100644 --- a/api/api.go +++ b/api/api.go @@ -150,6 +150,7 @@ func (a *API) Call(method, route string) ([]byte, error) { } func (a *API) UploadDocument(bucket string, file_header *multipart.FileHeader) (UploadDocumentResponse, error) { + var response UploadDocumentResponse endpoint := fmt.Sprintf("%s://%s:%d", a.Protocol, a.Host, @@ -165,34 +166,34 @@ func (a *API) UploadDocument(bucket string, file_header *multipart.FileHeader) ( // Add the file to the request file, err := file_header.Open() if err != nil { - return UploadDocumentResponse{}, fmt.Errorf("UploadDocument#file_header.Open: %s", err) + return response, fmt.Errorf("UploadDocument#file_header.Open: %s", err) } defer file.Close() filename_processed, err := url.QueryUnescape(file_header.Filename) if err != nil { - return UploadDocumentResponse{}, fmt.Errorf("UploadDocument#url.QueryUnescape: %s", err) + return response, fmt.Errorf("UploadDocument#url.QueryUnescape: %s", err) } part, err := writer.CreateFormFile("document", filename_processed) if err != nil { - return UploadDocumentResponse{}, fmt.Errorf("UploadDocument#writer.CreateFormFile: %s", err) + return response, fmt.Errorf("UploadDocument#writer.CreateFormFile: %s", err) } _, err = io.Copy(part, file) if err != nil { - return UploadDocumentResponse{}, fmt.Errorf("UploadDocument#io.Copy: %s", err) + return response, fmt.Errorf("UploadDocument#io.Copy: %s", err) } err = writer.Close() if err != nil { - return UploadDocumentResponse{}, fmt.Errorf("UploadDocument#writer.Close: %s", err) + return response, fmt.Errorf("UploadDocument#writer.Close: %s", err) } // Create a new HTTP request with the multipart body req, err := http.NewRequest(http.MethodPost, current_url, body) if err != nil { - return UploadDocumentResponse{}, fmt.Errorf("UploadDocument#http.NewRequest: %s", err) + return response, fmt.Errorf("UploadDocument#http.NewRequest: %s", err) } req.Header.Set("Content-Type", writer.FormDataContentType()) @@ -205,15 +206,12 @@ func (a *API) UploadDocument(bucket string, file_header *multipart.FileHeader) ( client := &http.Client{} resp, err := client.Do(req) if err != nil { - return UploadDocumentResponse{}, fmt.Errorf("UploadDocument#client.Do: %s", err) + return response, fmt.Errorf("UploadDocument#client.Do: %s", err) } defer resp.Body.Close() - // Handle the response - var res UploadDocumentResponse - - json.NewDecoder(resp.Body).Decode(&res) - return res, nil + err = json.NewDecoder(resp.Body).Decode(&response) + return response, err } // CallWithData takes data and returns a string representing a response body.