forked from ebhomengo/niki
43 lines
1.3 KiB
Go
43 lines
1.3 KiB
Go
|
|
||
|
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
|
||
|
}
|