Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
@@ -31,6 +31,10 @@ func NewUpdateOrderStatusLogic(ctx context.Context, svcCtx *svc.ServiceContext)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (l *UpdateOrderStatusLogic) UpdateOrderStatus(req *types.UpdateOrderStatusRequest) error {
|
func (l *UpdateOrderStatusLogic) UpdateOrderStatus(req *types.UpdateOrderStatusRequest) error {
|
||||||
|
if req.Status == orderStatusRefunded {
|
||||||
|
return errors.Wrapf(xerr.NewErrCode(xerr.OrderStatusError), "refund status must use refund order endpoint")
|
||||||
|
}
|
||||||
|
|
||||||
info, err := l.svcCtx.OrderModel.FindOne(l.ctx, req.Id)
|
info, err := l.svcCtx.OrderModel.FindOne(l.ctx, req.Id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.Errorw("[UpdateOrderStatus] FindOne error", logger.Field("error", err.Error()))
|
l.Errorw("[UpdateOrderStatus] FindOne error", logger.Field("error", err.Error()))
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package order
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/perfect-panel/server/internal/svc"
|
||||||
|
"github.com/perfect-panel/server/internal/types"
|
||||||
|
"github.com/perfect-panel/server/pkg/logger"
|
||||||
|
"github.com/perfect-panel/server/pkg/xerr"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestUpdateOrderStatus_RejectsRefundStatus(t *testing.T) {
|
||||||
|
logic := &UpdateOrderStatusLogic{
|
||||||
|
Logger: logger.WithContext(context.Background()),
|
||||||
|
ctx: context.Background(),
|
||||||
|
svcCtx: &svc.ServiceContext{},
|
||||||
|
}
|
||||||
|
|
||||||
|
err := logic.UpdateOrderStatus(&types.UpdateOrderStatusRequest{
|
||||||
|
Id: 1001,
|
||||||
|
Status: orderStatusRefunded,
|
||||||
|
})
|
||||||
|
if !isErrCode(err, xerr.OrderStatusError) {
|
||||||
|
t.Fatalf("UpdateOrderStatus error code = %v, want OrderStatusError; raw=%v", errCodeOf(err), err)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user