forked from ebhomengo/niki
				
			fix(repository): replace "assigned-sender-agent" with entity.KindBoxReqAssignedSenderAgentStatus.String()
This commit is contained in:
		
							parent
							
								
									ad916d7ae7
								
							
						
					
					
						commit
						11a74df75f
					
				|  | @ -17,4 +17,6 @@ func (h Handler) SetRoutes(e *echo.Echo) { | ||||||
| 	r.POST("/", h.Add) | 	r.POST("/", h.Add) | ||||||
| 	r.GET("/:id", h.Get) | 	r.GET("/:id", h.Get) | ||||||
| 	r.DELETE("/:id", h.Delete) | 	r.DELETE("/:id", h.Delete) | ||||||
|  | 	r.PATCH("/:id", h.Update) | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,58 @@ | ||||||
|  | package benefactorkindboxreqhandler | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"net/http" | ||||||
|  | 
 | ||||||
|  | 	param "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box_req" | ||||||
|  | 	errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" | ||||||
|  | 	httpmsg "git.gocasts.ir/ebhomengo/niki/pkg/http_msg" | ||||||
|  | 	claim "git.gocasts.ir/ebhomengo/niki/pkg/claim" | ||||||
|  | 	echo "github.com/labstack/echo/v4" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // UpdateKindBoxReq godoc
 | ||||||
|  | // @Summary      update kindBoxReq 
 | ||||||
|  | // @Tags         KindBoxReq
 | ||||||
|  | // @Accept       json
 | ||||||
|  | // @Produce      json
 | ||||||
|  | // @Param 		 id path int true "KindBoxReq ID"
 | ||||||
|  | // @Param        Request body   param.KindBoxReqUpdateRequest true "Update kind box req fields"
 | ||||||
|  | // @Success      204  {object}  param.KindBoxReqUpdateResponse
 | ||||||
|  | // @Failure      400  {string}  "Bad request"
 | ||||||
|  | // @Security     AuthBearerBenefactor
 | ||||||
|  | // @Router       /benefactor/kindboxreqs/{id} [patch]
 | ||||||
|  | func (h Handler) Update(c echo.Context) error { | ||||||
|  | 	 | ||||||
|  | 	var req param.KindBoxReqUpdateRequest | ||||||
|  | 	 | ||||||
|  | 	if err := c.Bind(&req); err != nil { | ||||||
|  | 		return c.JSON(http.StatusBadRequest, echo.Map{ | ||||||
|  | 			"message": errmsg.ErrBadRequest, | ||||||
|  | 		}) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if bErr := echo.PathParamsBinder(c).Uint("id", &req.KindBoxReqID).BindError(); bErr != nil { | ||||||
|  | 		return echo.NewHTTPError(http.StatusBadRequest) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	claims := claim.GetClaimsFromEchoContext(c) | ||||||
|  | 	req.BenefactorID = claims.UserID | ||||||
|  | 
 | ||||||
|  | 	if fieldErrors, err := h.benefactorKindBoxReqVld.ValidateUpdateRequest(req); err != nil { | ||||||
|  | 		msg, code := httpmsg.Error(err) | ||||||
|  | 
 | ||||||
|  | 		return c.JSON(code, echo.Map{ | ||||||
|  | 			"message": msg, | ||||||
|  | 			"errors":  fieldErrors, | ||||||
|  | 		}) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	resp, err := h.benefactorKindBoxReqSvc.UpdateKindBoxReq(c.Request().Context(), req) | ||||||
|  | 	if err != nil { | ||||||
|  | 		msg, code := httpmsg.Error(err) | ||||||
|  | 		return echo.NewHTTPError(code, msg) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return c.JSON(http.StatusOK, resp) | ||||||
|  | } | ||||||
							
								
								
									
										90
									
								
								docs/docs.go
								
								
								
								
							
							
						
						
									
										90
									
								
								docs/docs.go
								
								
								
								
							|  | @ -868,6 +868,55 @@ const docTemplate = `{ | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "patch": { | ||||||
|  |                 "security": [ | ||||||
|  |                     { | ||||||
|  |                         "AuthBearerBenefactor": [] | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "consumes": [ | ||||||
|  |                     "application/json" | ||||||
|  |                 ], | ||||||
|  |                 "produces": [ | ||||||
|  |                     "application/json" | ||||||
|  |                 ], | ||||||
|  |                 "tags": [ | ||||||
|  |                     "KindBoxReq" | ||||||
|  |                 ], | ||||||
|  |                 "summary": "update kindBoxReq", | ||||||
|  |                 "parameters": [ | ||||||
|  |                     { | ||||||
|  |                         "type": "integer", | ||||||
|  |                         "description": "KindBoxReq ID", | ||||||
|  |                         "name": "id", | ||||||
|  |                         "in": "path", | ||||||
|  |                         "required": true | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "description": "Update kind box req fields", | ||||||
|  |                         "name": "Request", | ||||||
|  |                         "in": "body", | ||||||
|  |                         "required": true, | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/benefactorkindboxreqparam.KindBoxReqUpdateRequest" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "responses": { | ||||||
|  |                     "204": { | ||||||
|  |                         "description": "No Content", | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/benefactorkindboxreqparam.KindBoxReqUpdateResponse" | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     "400": { | ||||||
|  |                         "description": "Bad request", | ||||||
|  |                         "schema": { | ||||||
|  |                             "type": "string" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/benefactor/login-register": { |         "/benefactor/login-register": { | ||||||
|  | @ -1574,6 +1623,47 @@ const docTemplate = `{ | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "benefactorkindboxreqparam.KindBoxReqUpdateRequest": { | ||||||
|  |             "type": "object", | ||||||
|  |             "properties": { | ||||||
|  |                 "count_requested": { | ||||||
|  |                     "type": "integer", | ||||||
|  |                     "example": 2 | ||||||
|  |                 }, | ||||||
|  |                 "deliver_address_id": { | ||||||
|  |                     "type": "integer", | ||||||
|  |                     "example": 2 | ||||||
|  |                 }, | ||||||
|  |                 "deliver_refer_date": { | ||||||
|  |                     "type": "string", | ||||||
|  |                     "example": "2025-01-02 15:04:05" | ||||||
|  |                 }, | ||||||
|  |                 "deliver_refer_time_id": { | ||||||
|  |                     "type": "integer", | ||||||
|  |                     "example": 1 | ||||||
|  |                 }, | ||||||
|  |                 "description": { | ||||||
|  |                     "type": "string", | ||||||
|  |                     "example": "this is a description for..." | ||||||
|  |                 }, | ||||||
|  |                 "kind_box_type": { | ||||||
|  |                     "allOf": [ | ||||||
|  |                         { | ||||||
|  |                             "$ref": "#/definitions/entity.KindBoxType" | ||||||
|  |                         } | ||||||
|  |                     ], | ||||||
|  |                     "example": 1 | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "benefactorkindboxreqparam.KindBoxReqUpdateResponse": { | ||||||
|  |             "type": "object", | ||||||
|  |             "properties": { | ||||||
|  |                 "kind_box_req": { | ||||||
|  |                     "$ref": "#/definitions/entity.KindBoxReq" | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "entity.Address": { |         "entity.Address": { | ||||||
|             "type": "object", |             "type": "object", | ||||||
|             "properties": { |             "properties": { | ||||||
|  |  | ||||||
|  | @ -857,6 +857,55 @@ | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "patch": { | ||||||
|  |                 "security": [ | ||||||
|  |                     { | ||||||
|  |                         "AuthBearerBenefactor": [] | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "consumes": [ | ||||||
|  |                     "application/json" | ||||||
|  |                 ], | ||||||
|  |                 "produces": [ | ||||||
|  |                     "application/json" | ||||||
|  |                 ], | ||||||
|  |                 "tags": [ | ||||||
|  |                     "KindBoxReq" | ||||||
|  |                 ], | ||||||
|  |                 "summary": "update kindBoxReq", | ||||||
|  |                 "parameters": [ | ||||||
|  |                     { | ||||||
|  |                         "type": "integer", | ||||||
|  |                         "description": "KindBoxReq ID", | ||||||
|  |                         "name": "id", | ||||||
|  |                         "in": "path", | ||||||
|  |                         "required": true | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "description": "Update kind box req fields", | ||||||
|  |                         "name": "Request", | ||||||
|  |                         "in": "body", | ||||||
|  |                         "required": true, | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/benefactorkindboxreqparam.KindBoxReqUpdateRequest" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "responses": { | ||||||
|  |                     "204": { | ||||||
|  |                         "description": "No Content", | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/benefactorkindboxreqparam.KindBoxReqUpdateResponse" | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     "400": { | ||||||
|  |                         "description": "Bad request", | ||||||
|  |                         "schema": { | ||||||
|  |                             "type": "string" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/benefactor/login-register": { |         "/benefactor/login-register": { | ||||||
|  | @ -1563,6 +1612,47 @@ | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  |         "benefactorkindboxreqparam.KindBoxReqUpdateRequest": { | ||||||
|  |             "type": "object", | ||||||
|  |             "properties": { | ||||||
|  |                 "count_requested": { | ||||||
|  |                     "type": "integer", | ||||||
|  |                     "example": 2 | ||||||
|  |                 }, | ||||||
|  |                 "deliver_address_id": { | ||||||
|  |                     "type": "integer", | ||||||
|  |                     "example": 2 | ||||||
|  |                 }, | ||||||
|  |                 "deliver_refer_date": { | ||||||
|  |                     "type": "string", | ||||||
|  |                     "example": "2025-01-02 15:04:05" | ||||||
|  |                 }, | ||||||
|  |                 "deliver_refer_time_id": { | ||||||
|  |                     "type": "integer", | ||||||
|  |                     "example": 1 | ||||||
|  |                 }, | ||||||
|  |                 "description": { | ||||||
|  |                     "type": "string", | ||||||
|  |                     "example": "this is a description for..." | ||||||
|  |                 }, | ||||||
|  |                 "kind_box_type": { | ||||||
|  |                     "allOf": [ | ||||||
|  |                         { | ||||||
|  |                             "$ref": "#/definitions/entity.KindBoxType" | ||||||
|  |                         } | ||||||
|  |                     ], | ||||||
|  |                     "example": 1 | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "benefactorkindboxreqparam.KindBoxReqUpdateResponse": { | ||||||
|  |             "type": "object", | ||||||
|  |             "properties": { | ||||||
|  |                 "kind_box_req": { | ||||||
|  |                     "$ref": "#/definitions/entity.KindBoxReq" | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|         "entity.Address": { |         "entity.Address": { | ||||||
|             "type": "object", |             "type": "object", | ||||||
|             "properties": { |             "properties": { | ||||||
|  |  | ||||||
|  | @ -408,6 +408,33 @@ definitions: | ||||||
|       kind_box_req: |       kind_box_req: | ||||||
|         $ref: '#/definitions/entity.KindBoxReq' |         $ref: '#/definitions/entity.KindBoxReq' | ||||||
|     type: object |     type: object | ||||||
|  |   benefactorkindboxreqparam.KindBoxReqUpdateRequest: | ||||||
|  |     properties: | ||||||
|  |       count_requested: | ||||||
|  |         example: 2 | ||||||
|  |         type: integer | ||||||
|  |       deliver_address_id: | ||||||
|  |         example: 2 | ||||||
|  |         type: integer | ||||||
|  |       deliver_refer_date: | ||||||
|  |         example: "2025-01-02 15:04:05" | ||||||
|  |         type: string | ||||||
|  |       deliver_refer_time_id: | ||||||
|  |         example: 1 | ||||||
|  |         type: integer | ||||||
|  |       description: | ||||||
|  |         example: this is a description for... | ||||||
|  |         type: string | ||||||
|  |       kind_box_type: | ||||||
|  |         allOf: | ||||||
|  |         - $ref: '#/definitions/entity.KindBoxType' | ||||||
|  |         example: 1 | ||||||
|  |     type: object | ||||||
|  |   benefactorkindboxreqparam.KindBoxReqUpdateResponse: | ||||||
|  |     properties: | ||||||
|  |       kind_box_req: | ||||||
|  |         $ref: '#/definitions/entity.KindBoxReq' | ||||||
|  |     type: object | ||||||
|   entity.Address: |   entity.Address: | ||||||
|     properties: |     properties: | ||||||
|       address: |       address: | ||||||
|  | @ -1110,6 +1137,37 @@ paths: | ||||||
|       summary: Get a kind box request for a benefactor |       summary: Get a kind box request for a benefactor | ||||||
|       tags: |       tags: | ||||||
|       - KindBoxReq |       - KindBoxReq | ||||||
|  |     patch: | ||||||
|  |       consumes: | ||||||
|  |       - application/json | ||||||
|  |       parameters: | ||||||
|  |       - description: KindBoxReq ID | ||||||
|  |         in: path | ||||||
|  |         name: id | ||||||
|  |         required: true | ||||||
|  |         type: integer | ||||||
|  |       - description: Update kind box req fields | ||||||
|  |         in: body | ||||||
|  |         name: Request | ||||||
|  |         required: true | ||||||
|  |         schema: | ||||||
|  |           $ref: '#/definitions/benefactorkindboxreqparam.KindBoxReqUpdateRequest' | ||||||
|  |       produces: | ||||||
|  |       - application/json | ||||||
|  |       responses: | ||||||
|  |         "204": | ||||||
|  |           description: No Content | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/benefactorkindboxreqparam.KindBoxReqUpdateResponse' | ||||||
|  |         "400": | ||||||
|  |           description: Bad request | ||||||
|  |           schema: | ||||||
|  |             type: string | ||||||
|  |       security: | ||||||
|  |       - AuthBearerBenefactor: [] | ||||||
|  |       summary: update kindBoxReq | ||||||
|  |       tags: | ||||||
|  |       - KindBoxReq | ||||||
|   /benefactor/login-register: |   /benefactor/login-register: | ||||||
|     post: |     post: | ||||||
|       consumes: |       consumes: | ||||||
|  |  | ||||||
|  | @ -1,14 +1,21 @@ | ||||||
| package benefactorkindboxreqparam | package benefactorkindboxreqparam | ||||||
| 
 | 
 | ||||||
| import entity "git.gocasts.ir/ebhomengo/niki/entity" | import ( | ||||||
|  | 
 | ||||||
|  | 	entity "git.gocasts.ir/ebhomengo/niki/entity" | ||||||
|  | ) | ||||||
| 
 | 
 | ||||||
| type KindBoxReqUpdateRequest struct { | type KindBoxReqUpdateRequest struct { | ||||||
| 	BenefactorID   uint | 	KindBoxReqID		uint				`json:"-"` | ||||||
| 	KindBoxReqID   uint | 	BenefactorID		uint				`json:"-"` | ||||||
| 	TypeID         entity.KindBoxType | 	KindBoxType			entity.KindBoxType	`json:"kind_box_type" example:"1"` | ||||||
| 	CountRequested uint | 	CountRequested		uint				`json:"count_requested" example:"2"` | ||||||
|  | 	Description			string				`json:"description" example:"this is a description for..."` | ||||||
|  | 	DeliverReferDate	string          	`json:"deliver_refer_date" example:"2025-01-02 15:04:05"` | ||||||
|  | 	DeliverReferTimeID	uint             	`json:"deliver_refer_time_id" example:"1"` | ||||||
|  | 	DeliverAddressID	uint				`json:"deliver_address_id" example:"2"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type KindBoxReqUpdateResponse struct { | type KindBoxReqUpdateResponse struct { | ||||||
| 	KindBoxReq entity.KindBoxReq | 	KindBoxReq entity.KindBoxReq `json:"kind_box_req"` | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -12,8 +12,8 @@ import ( | ||||||
| func (d DB) GetAwaitingDeliveryByAgent(ctx context.Context, kindBoxReqID uint, agentID uint) (entity.KindBoxReq, error) { | func (d DB) GetAwaitingDeliveryByAgent(ctx context.Context, kindBoxReqID uint, agentID uint) (entity.KindBoxReq, error) { | ||||||
| 	const op = "mysqlkindboxreq.GetAwaitingDeliveryByAgent" | 	const op = "mysqlkindboxreq.GetAwaitingDeliveryByAgent" | ||||||
| 
 | 
 | ||||||
| 	query := `SELECT * FROM kind_box_reqs WHERE id = ? AND sender_agent_id = ? AND status = 'assigned-sender-agent' AND deleted_at IS NULL ` | 	query := `SELECT * FROM kind_box_reqs WHERE id = ? AND sender_agent_id = ? AND status = ? AND deleted_at IS NULL ` | ||||||
| 	row := d.conn.Conn().QueryRowContext(ctx, query, kindBoxReqID, agentID) | 	row := d.conn.Conn().QueryRowContext(ctx, query, kindBoxReqID, agentID, entity.KindBoxReqAssignedSenderAgentStatus.String()) | ||||||
| 	k, err := scanKindBoxReq(row) | 	k, err := scanKindBoxReq(row) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if err == sql.ErrNoRows { | 		if err == sql.ErrNoRows { | ||||||
|  |  | ||||||
|  | @ -0,0 +1,43 @@ | ||||||
|  | 
 | ||||||
|  | package mysqlkindboxreq | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"context" | ||||||
|  | 
 | ||||||
|  | 	entity "git.gocasts.ir/ebhomengo/niki/entity" | ||||||
|  | 	errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" | ||||||
|  | 	richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | func (d DB) UpdateKindBoxReq(ctx context.Context, kindBoxReq entity.KindBoxReq) (entity.KindBoxReq, error) { | ||||||
|  | 
 | ||||||
|  | 	const op = "mysqlkindboxreq.UpdateKindBoxReq" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	query := `UPDATE kind_box_reqs SET  | ||||||
|  | 		kind_box_type = ?, count_requested = ?, description = ?, deliver_refer_time_id = ?, | ||||||
|  | 		deliver_refer_date = ?, deliver_address_id = ?  | ||||||
|  | 		WHERE id = ? AND benefactor_id = ? AND deleted_at IS NULL` | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	_, uErr := d.conn.Conn().ExecContext(ctx, query, | ||||||
|  | 	 kindBoxReq.KindBoxType, kindBoxReq.CountRequested, | ||||||
|  | 	 kindBoxReq.Description, kindBoxReq.DeliverReferTimeID, kindBoxReq.DeliverReferDate, | ||||||
|  | 	 kindBoxReq.DeliverAddressID, kindBoxReq.ID, kindBoxReq.BenefactorID) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	if uErr != nil { | ||||||
|  | 		return entity.KindBoxReq{}, richerror.New(op).WithErr(uErr).WithMessage(errmsg.ErrorMsgCantUpdateRecord). | ||||||
|  | 		WithKind(richerror.KindUnexpected) | ||||||
|  | 
 | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	updatedKindBoxReq, gErr := d.GetKindBoxReqByID(ctx, kindBoxReq.ID) | ||||||
|  | 	if gErr != nil { | ||||||
|  | 		return entity.KindBoxReq{}, richerror.New(op).WithErr(gErr).WithMessage(errmsg.ErrorMsgNotFound). | ||||||
|  | 		WithKind(richerror.KindUnexpected) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return updatedKindBoxReq, nil | ||||||
|  | } | ||||||
|  | @ -10,6 +10,7 @@ type Repository interface { | ||||||
| 	AddKindBoxReq(ctx context.Context, kindBoxReq entity.KindBoxReq) (entity.KindBoxReq, error) | 	AddKindBoxReq(ctx context.Context, kindBoxReq entity.KindBoxReq) (entity.KindBoxReq, error) | ||||||
| 	GetKindBoxReqByID(ctx context.Context, kindBoxReqID uint) (entity.KindBoxReq, error) | 	GetKindBoxReqByID(ctx context.Context, kindBoxReqID uint) (entity.KindBoxReq, error) | ||||||
| 	DeleteKindBoxReqByID(ctx context.Context, kindBoxReqID uint) error | 	DeleteKindBoxReqByID(ctx context.Context, kindBoxReqID uint) error | ||||||
|  | 	UpdateKindBoxReq(ctx context.Context, kindBoxReq entity.KindBoxReq) (entity.KindBoxReq, error) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type Service struct { | type Service struct { | ||||||
|  |  | ||||||
|  | @ -0,0 +1,37 @@ | ||||||
|  | package benefactorkindboxreqservice | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"context" | ||||||
|  | 	"time" | ||||||
|  | 
 | ||||||
|  | 	param "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box_req" | ||||||
|  | 	entity "git.gocasts.ir/ebhomengo/niki/entity" | ||||||
|  | 	richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func (s Service) UpdateKindBoxReq(ctx context.Context, req param.KindBoxReqUpdateRequest) (param.KindBoxReqUpdateResponse, error) { | ||||||
|  | 	const op = "benefactorkindboxreqservice.UpdateKindBoxReq" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	t, tErr := time.Parse(time.DateTime, req.DeliverReferDate) | ||||||
|  | 	if tErr != nil { | ||||||
|  | 		return param.KindBoxReqUpdateResponse{}, richerror.New(op).WithErr(tErr).WithKind(richerror.KindInvalid) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	updatedKindBoxReq, err := s.repo.UpdateKindBoxReq(ctx, entity.KindBoxReq{ | ||||||
|  | 		ID:				  		req.KindBoxReqID, | ||||||
|  | 		BenefactorID:     		req.BenefactorID, | ||||||
|  | 		KindBoxType:      		req.KindBoxType, | ||||||
|  | 		CountRequested:   		req.CountRequested, | ||||||
|  | 		Description:  	  		req.Description, | ||||||
|  | 		DeliverReferDate: 		t, | ||||||
|  | 		DeliverReferTimeID:		req.DeliverReferTimeID, | ||||||
|  | 		DeliverAddressID: 		req.DeliverAddressID, | ||||||
|  | 	}) | ||||||
|  | 	 | ||||||
|  | 	if err != nil { | ||||||
|  | 		return param.KindBoxReqUpdateResponse{}, richerror.New(op).WithErr(err).WithKind(richerror.KindUnexpected) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return param.KindBoxReqUpdateResponse{KindBoxReq: updatedKindBoxReq}, nil | ||||||
|  | } | ||||||
|  | @ -21,7 +21,7 @@ func (v Validator) ValidateAddRequest(req param.KindBoxReqAddRequest) (map[strin | ||||||
| 
 | 
 | ||||||
| 		validation.Field(&req.TypeID, | 		validation.Field(&req.TypeID, | ||||||
| 			validation.Required, | 			validation.Required, | ||||||
| 			validation.By(v.doesTypeExist)), | 			validation.By(v.doesKindBoxTypeExist)), | ||||||
| 
 | 
 | ||||||
| 		validation.Field(&req.DeliverAddressID, | 		validation.Field(&req.DeliverAddressID, | ||||||
| 			validation.Required, | 			validation.Required, | ||||||
|  |  | ||||||
|  | @ -10,24 +10,16 @@ import ( | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func (v Validator) ValidateUpdateRequest(req param.KindBoxReqUpdateRequest) (map[string]string, error) { | func (v Validator) ValidateUpdateRequest(req param.KindBoxReqUpdateRequest) (map[string]string, error) { | ||||||
| 	const op = "userkindboxreqvalidator.ValidateUpdateRequest" | 	const op = "benefactorkindboxreqvalidator.ValidateUpdateRequest" | ||||||
| 
 | 
 | ||||||
| 	if err := validation.ValidateStruct(&req, | 	if err := validation.ValidateStruct(&req, | ||||||
|  | 		validation.Field(&req.KindBoxReqID, validation.Required, validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID)), validation.By(v.doesKindBoxRequestHavePendingStatus)), | ||||||
|  | 		validation.Field(&req.KindBoxType, validation.Required, validation.By(v.doesTypeExist)), | ||||||
| 		validation.Field(&req.CountRequested, validation.Required, validation.Min(MinKindBoxReq), validation.Max(MaxKindBoxReq)), | 		validation.Field(&req.CountRequested, validation.Required, validation.Min(MinKindBoxReq), validation.Max(MaxKindBoxReq)), | ||||||
|  | 		validation.Field(&req.DeliverReferDate, validation.Required, validation.By(v.isDateValid)), | ||||||
|  | 		validation.Field(&req.DeliverReferTimeID, validation.Required, validation.By(v.isReferTimeIDValid)), | ||||||
|  | 		validation.Field(&req.DeliverAddressID, validation.Required, validation.By(v.doesAddressExist(req.BenefactorID))), | ||||||
| 	 | 	 | ||||||
| 		validation.Field(&req.BenefactorID, |  | ||||||
| 			validation.Required, |  | ||||||
| 			validation.By(v.doesBenefactorExist)), |  | ||||||
| 
 |  | ||||||
| 		// validation.Field(&req.KindBoxReqID,
 |  | ||||||
| 		//	validation.Required,
 |  | ||||||
| 		//	validation.By(v.doesKindBoxRequestExist),
 |  | ||||||
| 		//	validation.By(v.hasPendingStatus),
 |  | ||||||
| 		//	validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID))),
 |  | ||||||
| 
 |  | ||||||
| 		validation.Field(&req.TypeID, |  | ||||||
| 			validation.Required, |  | ||||||
| 			validation.By(v.doesTypeExist)), |  | ||||||
| 	); err != nil { | 	); err != nil { | ||||||
| 		fieldErrors := make(map[string]string) | 		fieldErrors := make(map[string]string) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -72,7 +72,7 @@ func (v Validator) doesBenefactorExist(value interface{}) error { | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (v Validator) doesTypeExist(value interface{}) error { | func (v Validator) doesKindBoxTypeExist(value interface{}) error { | ||||||
| 	typeID, ok := value.(entity.KindBoxType) | 	typeID, ok := value.(entity.KindBoxType) | ||||||
| 	if !ok { | 	if !ok { | ||||||
| 		return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong) | 		return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue