fix: update gallery files
This commit is contained in:
parent
0dba3b27cf
commit
3802c801a6
|
|
@ -9,7 +9,6 @@ import (
|
||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
|
|
||||||
utilRes "jaecoo-be/utils/response"
|
utilRes "jaecoo-be/utils/response"
|
||||||
utilVal "jaecoo-be/utils/validator"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type galleryFilesController struct {
|
type galleryFilesController struct {
|
||||||
|
|
@ -161,12 +160,15 @@ func (_i *galleryFilesController) Save(c *fiber.Ctx) error {
|
||||||
|
|
||||||
// Update GalleryFile
|
// Update GalleryFile
|
||||||
// @Summary Update GalleryFile
|
// @Summary Update GalleryFile
|
||||||
// @Description API for updating GalleryFile
|
// @Description API for updating GalleryFile with file upload
|
||||||
// @Tags GalleryFiles
|
// @Tags GalleryFiles
|
||||||
// @Security Bearer
|
// @Security Bearer
|
||||||
// @Param X-Client-Key header string true "Insert the X-Client-Key"
|
// @Param X-Client-Key header string true "Insert the X-Client-Key"
|
||||||
// @Param id path int true "GalleryFile ID"
|
// @Param id path int true "GalleryFile ID"
|
||||||
// @Param payload body request.GalleryFilesUpdateRequest true "Required payload"
|
// @Param file formData file false "Upload file"
|
||||||
|
// @Param gallery_id formData int false "Gallery ID"
|
||||||
|
// @Param title formData string false "Gallery file title"
|
||||||
|
// @Param is_active formData bool false "Is active"
|
||||||
// @Success 200 {object} response.Response
|
// @Success 200 {object} response.Response
|
||||||
// @Failure 400 {object} response.BadRequestError
|
// @Failure 400 {object} response.BadRequestError
|
||||||
// @Failure 401 {object} response.UnauthorizedError
|
// @Failure 401 {object} response.UnauthorizedError
|
||||||
|
|
@ -178,12 +180,47 @@ func (_i *galleryFilesController) Update(c *fiber.Ctx) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
req := new(request.GalleryFilesUpdateRequest)
|
// Parse multipart form
|
||||||
if err := utilVal.ParseAndValidate(c, req); err != nil {
|
form, err := c.MultipartForm()
|
||||||
return err
|
if err != nil {
|
||||||
|
return utilRes.Resp(c, utilRes.Response{
|
||||||
|
Success: false,
|
||||||
|
Messages: utilRes.Messages{"Failed to parse form data"},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
dataResult, err := _i.galleryFilesService.Update(uint(id), *req)
|
req := request.GalleryFilesUpdateRequest{}
|
||||||
|
|
||||||
|
// Extract gallery_id if provided
|
||||||
|
if galleryIDStr := c.FormValue("gallery_id"); galleryIDStr != "" {
|
||||||
|
galleryID, err := strconv.ParseUint(galleryIDStr, 10, 0)
|
||||||
|
if err != nil {
|
||||||
|
return utilRes.Resp(c, utilRes.Response{
|
||||||
|
Success: false,
|
||||||
|
Messages: utilRes.Messages{"Invalid gallery_id"},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
galleryIDUint := uint(galleryID)
|
||||||
|
req.GalleryID = &galleryIDUint
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extract title if provided
|
||||||
|
if title := c.FormValue("title"); title != "" {
|
||||||
|
req.Title = &title
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extract is_active if provided
|
||||||
|
if isActiveStr := c.FormValue("is_active"); isActiveStr != "" {
|
||||||
|
isActive := isActiveStr == "true" || isActiveStr == "1"
|
||||||
|
req.IsActive = &isActive
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if file is uploaded
|
||||||
|
if len(form.File["file"]) > 0 {
|
||||||
|
// File will be handled in service
|
||||||
|
}
|
||||||
|
|
||||||
|
dataResult, err := _i.galleryFilesService.Update(c, uint(id), req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ type GalleryFilesService interface {
|
||||||
GetAll(req request.GalleryFilesQueryRequest) (files []*response.GalleryFilesResponse, paging paginator.Pagination, err error)
|
GetAll(req request.GalleryFilesQueryRequest) (files []*response.GalleryFilesResponse, paging paginator.Pagination, err error)
|
||||||
GetOne(id uint) (file *response.GalleryFilesResponse, err error)
|
GetOne(id uint) (file *response.GalleryFilesResponse, err error)
|
||||||
Create(c *fiber.Ctx, req request.GalleryFilesCreateRequest) (file *response.GalleryFilesResponse, err error)
|
Create(c *fiber.Ctx, req request.GalleryFilesCreateRequest) (file *response.GalleryFilesResponse, err error)
|
||||||
Update(id uint, req request.GalleryFilesUpdateRequest) (file *response.GalleryFilesResponse, err error)
|
Update(c *fiber.Ctx, id uint, req request.GalleryFilesUpdateRequest) (file *response.GalleryFilesResponse, err error)
|
||||||
Delete(id uint) (err error)
|
Delete(id uint) (err error)
|
||||||
UploadFileToMinio(c *fiber.Ctx, fileKey string) (filePath *string, err error)
|
UploadFileToMinio(c *fiber.Ctx, fileKey string) (filePath *string, err error)
|
||||||
Viewer(c *fiber.Ctx) (err error)
|
Viewer(c *fiber.Ctx) (err error)
|
||||||
|
|
@ -168,7 +168,12 @@ func (_i *galleryFilesService) UploadFileToMinio(c *fiber.Ctx, fileKey string) (
|
||||||
return &objectName, nil
|
return &objectName, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (_i *galleryFilesService) Update(id uint, req request.GalleryFilesUpdateRequest) (file *response.GalleryFilesResponse, err error) {
|
func (_i *galleryFilesService) Update(c *fiber.Ctx, id uint, req request.GalleryFilesUpdateRequest) (file *response.GalleryFilesResponse, err error) {
|
||||||
|
// Handle file upload if exists
|
||||||
|
if filePath, uploadErr := _i.UploadFileToMinio(c, "file"); uploadErr == nil && filePath != nil {
|
||||||
|
req.ImagePath = filePath
|
||||||
|
}
|
||||||
|
|
||||||
fileEntity := req.ToEntity()
|
fileEntity := req.ToEntity()
|
||||||
|
|
||||||
err = _i.Repo.Update(id, fileEntity)
|
err = _i.Repo.Update(id, fileEntity)
|
||||||
|
|
|
||||||
|
|
@ -5562,7 +5562,7 @@ const docTemplate = `{
|
||||||
"Bearer": []
|
"Bearer": []
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "API for updating GalleryFile",
|
"description": "API for updating GalleryFile with file upload",
|
||||||
"tags": [
|
"tags": [
|
||||||
"GalleryFiles"
|
"GalleryFiles"
|
||||||
],
|
],
|
||||||
|
|
@ -5583,13 +5583,28 @@ const docTemplate = `{
|
||||||
"required": true
|
"required": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Required payload",
|
"type": "file",
|
||||||
"name": "payload",
|
"description": "Upload file",
|
||||||
"in": "body",
|
"name": "file",
|
||||||
"required": true,
|
"in": "formData"
|
||||||
"schema": {
|
},
|
||||||
"$ref": "#/definitions/request.GalleryFilesUpdateRequest"
|
{
|
||||||
}
|
"type": "integer",
|
||||||
|
"description": "Gallery ID",
|
||||||
|
"name": "gallery_id",
|
||||||
|
"in": "formData"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "Gallery file title",
|
||||||
|
"name": "title",
|
||||||
|
"in": "formData"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Is active",
|
||||||
|
"name": "is_active",
|
||||||
|
"in": "formData"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
|
|
@ -10495,23 +10510,6 @@ const docTemplate = `{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"request.GalleryFilesUpdateRequest": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"gallery_id": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"image_path": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"is_active": {
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"request.ProductSpecificationsUpdateRequest": {
|
"request.ProductSpecificationsUpdateRequest": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|
|
||||||
|
|
@ -5551,7 +5551,7 @@
|
||||||
"Bearer": []
|
"Bearer": []
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "API for updating GalleryFile",
|
"description": "API for updating GalleryFile with file upload",
|
||||||
"tags": [
|
"tags": [
|
||||||
"GalleryFiles"
|
"GalleryFiles"
|
||||||
],
|
],
|
||||||
|
|
@ -5572,13 +5572,28 @@
|
||||||
"required": true
|
"required": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Required payload",
|
"type": "file",
|
||||||
"name": "payload",
|
"description": "Upload file",
|
||||||
"in": "body",
|
"name": "file",
|
||||||
"required": true,
|
"in": "formData"
|
||||||
"schema": {
|
},
|
||||||
"$ref": "#/definitions/request.GalleryFilesUpdateRequest"
|
{
|
||||||
}
|
"type": "integer",
|
||||||
|
"description": "Gallery ID",
|
||||||
|
"name": "gallery_id",
|
||||||
|
"in": "formData"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "Gallery file title",
|
||||||
|
"name": "title",
|
||||||
|
"in": "formData"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Is active",
|
||||||
|
"name": "is_active",
|
||||||
|
"in": "formData"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
|
|
@ -10484,23 +10499,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"request.GalleryFilesUpdateRequest": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"gallery_id": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"image_path": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"is_active": {
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"request.ProductSpecificationsUpdateRequest": {
|
"request.ProductSpecificationsUpdateRequest": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|
|
||||||
|
|
@ -390,17 +390,6 @@ definitions:
|
||||||
title:
|
title:
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
request.GalleryFilesUpdateRequest:
|
|
||||||
properties:
|
|
||||||
gallery_id:
|
|
||||||
type: integer
|
|
||||||
image_path:
|
|
||||||
type: string
|
|
||||||
is_active:
|
|
||||||
type: boolean
|
|
||||||
title:
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
request.ProductSpecificationsUpdateRequest:
|
request.ProductSpecificationsUpdateRequest:
|
||||||
properties:
|
properties:
|
||||||
is_active:
|
is_active:
|
||||||
|
|
@ -4318,7 +4307,7 @@ paths:
|
||||||
tags:
|
tags:
|
||||||
- GalleryFiles
|
- GalleryFiles
|
||||||
put:
|
put:
|
||||||
description: API for updating GalleryFile
|
description: API for updating GalleryFile with file upload
|
||||||
parameters:
|
parameters:
|
||||||
- description: Insert the X-Client-Key
|
- description: Insert the X-Client-Key
|
||||||
in: header
|
in: header
|
||||||
|
|
@ -4330,12 +4319,22 @@ paths:
|
||||||
name: id
|
name: id
|
||||||
required: true
|
required: true
|
||||||
type: integer
|
type: integer
|
||||||
- description: Required payload
|
- description: Upload file
|
||||||
in: body
|
in: formData
|
||||||
name: payload
|
name: file
|
||||||
required: true
|
type: file
|
||||||
schema:
|
- description: Gallery ID
|
||||||
$ref: '#/definitions/request.GalleryFilesUpdateRequest'
|
in: formData
|
||||||
|
name: gallery_id
|
||||||
|
type: integer
|
||||||
|
- description: Gallery file title
|
||||||
|
in: formData
|
||||||
|
name: title
|
||||||
|
type: string
|
||||||
|
- description: Is active
|
||||||
|
in: formData
|
||||||
|
name: is_active
|
||||||
|
type: boolean
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: OK
|
description: OK
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue