feat: model versioning\nfix: pay empty cart 500 -> 406

This commit is contained in:
skeris 2024-08-23 22:26:43 +03:00
parent e3f0e1202c
commit 0d21b76a00
8 changed files with 39 additions and 10 deletions

11
CHANGELOG.md Normal file

@ -0,0 +1,11 @@
#v1.0.0
INTERNAL:
- Добавлено версионирование модели данных. На данный момент модель под версией 1
FIX:
- При пустой корзине во время оплаты(/cart/pay) больше не будет возвращаться 500, а будет возвращаться 406
#v1.0.0

@ -412,6 +412,12 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/Error"
"406":
description: корзина пустая
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/wallet:
patch:

@ -135,6 +135,10 @@ func (receiver *CartController) Pay(ctx *fiber.Ctx) error {
receiver.logger.Info("account for pay", zap.Any("acc", account))
if len(account.Cart) == 0 {
return ctx.Status(fiber.StatusNotAcceptable).SendString("cart is empty")
}
tariffs, err := receiver.hubAdminClient.GetTariffs(ctx.Context(), accessToken, account.Cart)
if err != nil {
return receiver.middleWare.ErrorOld(ctx, err)

@ -15,6 +15,7 @@ type Account struct {
DeletedAt *time.Time `json:"deletedAt,omitempty" bson:"deletedAt,omitempty"`
From string `json:"from" bson:"from"`
Partner string `json:"partner" bson:"partner"`
Version uint32 `json:"version" bson:"version"`
}
func (receiver *Account) Sanitize() *Account {
@ -32,6 +33,7 @@ func (receiver *Account) Sanitize() *Account {
//receiver.Partner = ""
receiver.DeletedAt = nil
receiver.Deleted = false
receiver.Version = mongoVersion
return receiver
}

@ -131,3 +131,5 @@ type PlainAuth struct {
Username string `env:"MAIL_AUTH_USERNAME,required"`
Password string `env:"MAIL_AUTH_PASSWORD,required"`
}
const mongoVersion uint32 = 1

@ -12,6 +12,7 @@ type CurrencyList struct {
CreatedAt time.Time `json:"createdAt" bson:"createdAt"`
UpdatedAt time.Time `json:"updatedAt" bson:"updatedAt"`
DeletedAt *time.Time `json:"deletedAt,omitempty" bson:"deletedAt,omitempty"`
Version uint32 `json:"version" bson:"version"`
}
func (receiver *CurrencyList) Sanitize() *CurrencyList {
@ -22,6 +23,7 @@ func (receiver *CurrencyList) Sanitize() *CurrencyList {
receiver.UpdatedAt = now
receiver.DeletedAt = nil
receiver.Deleted = false
receiver.Version = mongoVersion
return receiver
}

@ -12,6 +12,7 @@ type History struct {
CreatedAt time.Time `json:"createdAt" bson:"createdAt"`
UpdatedAt time.Time `json:"updatedAt" bson:"updatedAt"`
DeletedAt *time.Time `json:"deletedAt,omitempty" bson:"deletedAt,omitempty"`
Version uint32 `json:"version" bson:"version"`
}
type TariffID struct {
@ -44,6 +45,7 @@ func (receiver *History) Sanitize() *History {
receiver.UpdatedAt = now
receiver.DeletedAt = nil
receiver.Deleted = false
receiver.Version = mongoVersion
return receiver
}