generated from PenaSide/GolangTemplate
feat: oapi gen
This commit is contained in:
parent
35541bb9a3
commit
8bfd447d46
@ -4,6 +4,7 @@ run:
|
||||
- \.pb\.go$
|
||||
- \.pb\.validate\.go$
|
||||
- \.pb\.gw\.go$
|
||||
- \.gen\.go$
|
||||
skip-dirs:
|
||||
- mocks
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Package api provides primitives to interact with the openapi HTTP API.
|
||||
// Package swagger provides primitives to interact with the openapi HTTP API.
|
||||
//
|
||||
// Code generated by github.com/deepmap/oapi-codegen version v1.12.4 DO NOT EDIT.
|
||||
package swagger
|
||||
@ -12,133 +12,12 @@ import (
|
||||
"net/url"
|
||||
"path"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/deepmap/oapi-codegen/pkg/runtime"
|
||||
"github.com/getkin/kin-openapi/openapi3"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
// Defines values for RecordType.
|
||||
const (
|
||||
BuyCart RecordType = "buyCart"
|
||||
DeclinedPayment RecordType = "declinedPayment"
|
||||
SubsriptionEnd RecordType = "subsriptionEnd"
|
||||
SuccessfulPayment RecordType = "successfulPayment"
|
||||
TimeoutPayment RecordType = "timeoutPayment"
|
||||
)
|
||||
|
||||
// Account defines model for Account.
|
||||
type Account struct {
|
||||
Id *string `json:"_id,omitempty"`
|
||||
Cart *Cart `json:"cart,omitempty"`
|
||||
IsDeleted *bool `json:"isDeleted,omitempty"`
|
||||
UserId *string `json:"userId,omitempty"`
|
||||
Wallet *Wallet `json:"wallet,omitempty"`
|
||||
}
|
||||
|
||||
// Cart defines model for Cart.
|
||||
type Cart = []string
|
||||
|
||||
// Record defines model for Record.
|
||||
type Record struct {
|
||||
Comment *string `json:"comment,omitempty"`
|
||||
CreatedAt *time.Time `json:"createdAt,omitempty"`
|
||||
Id *string `json:"id,omitempty"`
|
||||
|
||||
// Subject я пока не могу предположить, какие будут фильтры по истории, поэтому предлагаю в это поле просто класть строку с json. ибо для каждого типа записи она своя.
|
||||
Subject *string `json:"subject,omitempty"`
|
||||
Type *RecordType `json:"type,omitempty"`
|
||||
UserId *string `json:"userId,omitempty"`
|
||||
}
|
||||
|
||||
// RecordType defines model for Record.Type.
|
||||
type RecordType string
|
||||
|
||||
// Wallet defines model for Wallet.
|
||||
type Wallet struct {
|
||||
Cash *int64 `json:"cash,omitempty"`
|
||||
Currency *string `json:"currency,omitempty"`
|
||||
|
||||
// Money деньги на счету в копейках. Чтобы при перессчётах не возникало денег изниоткуда. фиксируемся к одной валюте, она будет внутренней, никому её не покажем
|
||||
Money *int64 `json:"money,omitempty"`
|
||||
}
|
||||
|
||||
// PaginationAccountsParams defines parameters for PaginationAccounts.
|
||||
type PaginationAccountsParams struct {
|
||||
// P Номер страницы, начиная с 0
|
||||
P *int `form:"p,omitempty" json:"p,omitempty"`
|
||||
|
||||
// S размер страницы
|
||||
S *int `form:"s,omitempty" json:"s,omitempty"`
|
||||
}
|
||||
|
||||
// RemoveFromCartParams defines parameters for RemoveFromCart.
|
||||
type RemoveFromCartParams struct {
|
||||
Id string `form:"id" json:"id"`
|
||||
}
|
||||
|
||||
// Add2cartJSONBody defines parameters for Add2cart.
|
||||
type Add2cartJSONBody struct {
|
||||
Id *string `json:"id,omitempty"`
|
||||
}
|
||||
|
||||
// PayCartJSONBody defines parameters for PayCart.
|
||||
type PayCartJSONBody struct {
|
||||
// Id айдишник для того, чтобы указать сервису оплаты, какой юзер оплатил
|
||||
Id *string `json:"id,omitempty"`
|
||||
}
|
||||
|
||||
// UpdateCurrenciesJSONBody defines parameters for UpdateCurrencies.
|
||||
type UpdateCurrenciesJSONBody = []string
|
||||
|
||||
// GetHistoryParams defines parameters for GetHistory.
|
||||
type GetHistoryParams struct {
|
||||
// P Номер страницы, начиная с 0
|
||||
P *int `form:"p,omitempty" json:"p,omitempty"`
|
||||
|
||||
// S размер страницы
|
||||
S *int `form:"s,omitempty" json:"s,omitempty"`
|
||||
}
|
||||
|
||||
// ChangeCurrencyJSONBody defines parameters for ChangeCurrency.
|
||||
type ChangeCurrencyJSONBody struct {
|
||||
Currency *string `json:"currency,omitempty"`
|
||||
}
|
||||
|
||||
// RequestMoneyJSONBody defines parameters for RequestMoney.
|
||||
type RequestMoneyJSONBody struct {
|
||||
Cash *int `json:"cash,omitempty"`
|
||||
}
|
||||
|
||||
// PutMoneyJSONBody defines parameters for PutMoney.
|
||||
type PutMoneyJSONBody struct {
|
||||
Cash *int `json:"cash,omitempty"`
|
||||
Currency *string `json:"currency,omitempty"`
|
||||
Id *string `json:"id,omitempty"`
|
||||
}
|
||||
|
||||
// Add2cartJSONRequestBody defines body for Add2cart for application/json ContentType.
|
||||
type Add2cartJSONRequestBody Add2cartJSONBody
|
||||
|
||||
// PayCartJSONRequestBody defines body for PayCart for application/json ContentType.
|
||||
type PayCartJSONRequestBody PayCartJSONBody
|
||||
|
||||
// UpdateCurrenciesJSONRequestBody defines body for UpdateCurrencies for application/json ContentType.
|
||||
type UpdateCurrenciesJSONRequestBody = UpdateCurrenciesJSONBody
|
||||
|
||||
// Add2historyJSONRequestBody defines body for Add2history for application/json ContentType.
|
||||
type Add2historyJSONRequestBody = Record
|
||||
|
||||
// ChangeCurrencyJSONRequestBody defines body for ChangeCurrency for application/json ContentType.
|
||||
type ChangeCurrencyJSONRequestBody ChangeCurrencyJSONBody
|
||||
|
||||
// RequestMoneyJSONRequestBody defines body for RequestMoney for application/json ContentType.
|
||||
type RequestMoneyJSONRequestBody RequestMoneyJSONBody
|
||||
|
||||
// PutMoneyJSONRequestBody defines body for PutMoney for application/json ContentType.
|
||||
type PutMoneyJSONRequestBody PutMoneyJSONBody
|
||||
|
||||
// ServerInterface represents all server handlers.
|
||||
type ServerInterface interface {
|
||||
// удалить собственный аккаунт
|
||||
@ -147,23 +26,23 @@ type ServerInterface interface {
|
||||
// Получение текущего аккаунта юзера
|
||||
// (GET /account)
|
||||
GetAccount(ctx echo.Context) error
|
||||
// создать новый аккаунт
|
||||
// Создать новый аккаунт
|
||||
// (POST /account)
|
||||
AddAccount(ctx echo.Context) error
|
||||
// удалить аккаунт по айди
|
||||
// Удалить аккаунт по айди
|
||||
// (DELETE /account/{accountId})
|
||||
DeleteDirectAccount(ctx echo.Context, accountId string) error
|
||||
// получить аккаунт по айди
|
||||
// Получить аккаунт по ID
|
||||
// (GET /account/{accountId})
|
||||
GetDirectAccount(ctx echo.Context, accountId string) error
|
||||
// списко аккаунтов с пагинацией
|
||||
// (GET /accounts)
|
||||
PaginationAccounts(ctx echo.Context, params PaginationAccountsParams) error
|
||||
// удаляем из корзины тариф
|
||||
// Удаляем из корзины тариф
|
||||
// (DELETE /cart)
|
||||
RemoveFromCart(ctx echo.Context, params RemoveFromCartParams) error
|
||||
// добавляем в корзину тариф
|
||||
// (PUT /cart)
|
||||
// Добавляем в корзину тариф
|
||||
// (PATCH /cart)
|
||||
Add2cart(ctx echo.Context) error
|
||||
// оплатить козину
|
||||
// (POST /cart/pay)
|
||||
@ -172,22 +51,22 @@ type ServerInterface interface {
|
||||
// (GET /currencies)
|
||||
GetCurrencies(ctx echo.Context) error
|
||||
// обновляет список одобренных валют
|
||||
// (PATCH /currencies)
|
||||
// (PUT /currencies)
|
||||
UpdateCurrencies(ctx echo.Context) error
|
||||
// получение лога событий связанных с аккаунтом
|
||||
// Получение лога событий связанных с аккаунтом
|
||||
// (GET /history)
|
||||
GetHistory(ctx echo.Context, params GetHistoryParams) error
|
||||
// публикация лога в истории
|
||||
// Публикация лога в истории
|
||||
// (POST /history)
|
||||
Add2history(ctx echo.Context) error
|
||||
// изменить валюту кошелька
|
||||
// Запрос на получение ссылки на оплату
|
||||
// (GET /wallet)
|
||||
RequestMoney(ctx echo.Context, params RequestMoneyParams) error
|
||||
// Изменить валюту кошелька
|
||||
// (PATCH /wallet)
|
||||
ChangeCurrency(ctx echo.Context) error
|
||||
// запрос на получение ссылки на оплату
|
||||
// Зачислить деньги на кошелёк
|
||||
// (POST /wallet)
|
||||
RequestMoney(ctx echo.Context) error
|
||||
// зачислить деньги на кошелёк
|
||||
// (PUT /wallet)
|
||||
PutMoney(ctx echo.Context) error
|
||||
}
|
||||
|
||||
@ -200,6 +79,8 @@ type ServerInterfaceWrapper struct {
|
||||
func (w *ServerInterfaceWrapper) DeleteAccount(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.DeleteAccount(ctx)
|
||||
return err
|
||||
@ -209,6 +90,8 @@ func (w *ServerInterfaceWrapper) DeleteAccount(ctx echo.Context) error {
|
||||
func (w *ServerInterfaceWrapper) GetAccount(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.GetAccount(ctx)
|
||||
return err
|
||||
@ -218,6 +101,8 @@ func (w *ServerInterfaceWrapper) GetAccount(ctx echo.Context) error {
|
||||
func (w *ServerInterfaceWrapper) AddAccount(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.AddAccount(ctx)
|
||||
return err
|
||||
@ -234,6 +119,8 @@ func (w *ServerInterfaceWrapper) DeleteDirectAccount(ctx echo.Context) error {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter accountId: %s", err))
|
||||
}
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.DeleteDirectAccount(ctx, accountId)
|
||||
return err
|
||||
@ -250,6 +137,8 @@ func (w *ServerInterfaceWrapper) GetDirectAccount(ctx echo.Context) error {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter accountId: %s", err))
|
||||
}
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.GetDirectAccount(ctx, accountId)
|
||||
return err
|
||||
@ -261,18 +150,18 @@ func (w *ServerInterfaceWrapper) PaginationAccounts(ctx echo.Context) error {
|
||||
|
||||
// Parameter object where we will unmarshal all parameters from the context
|
||||
var params PaginationAccountsParams
|
||||
// ------------- Optional query parameter "p" -------------
|
||||
// ------------- Optional query parameter "page" -------------
|
||||
|
||||
err = runtime.BindQueryParameter("form", false, false, "p", ctx.QueryParams(), ¶ms.P)
|
||||
err = runtime.BindQueryParameter("form", false, false, "page", ctx.QueryParams(), ¶ms.Page)
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter p: %s", err))
|
||||
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter page: %s", err))
|
||||
}
|
||||
|
||||
// ------------- Optional query parameter "s" -------------
|
||||
// ------------- Optional query parameter "limit" -------------
|
||||
|
||||
err = runtime.BindQueryParameter("form", false, false, "s", ctx.QueryParams(), ¶ms.S)
|
||||
err = runtime.BindQueryParameter("form", false, false, "limit", ctx.QueryParams(), ¶ms.Limit)
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter s: %s", err))
|
||||
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter limit: %s", err))
|
||||
}
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
@ -284,6 +173,8 @@ func (w *ServerInterfaceWrapper) PaginationAccounts(ctx echo.Context) error {
|
||||
func (w *ServerInterfaceWrapper) RemoveFromCart(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Parameter object where we will unmarshal all parameters from the context
|
||||
var params RemoveFromCartParams
|
||||
// ------------- Required query parameter "id" -------------
|
||||
@ -302,6 +193,8 @@ func (w *ServerInterfaceWrapper) RemoveFromCart(ctx echo.Context) error {
|
||||
func (w *ServerInterfaceWrapper) Add2cart(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.Add2cart(ctx)
|
||||
return err
|
||||
@ -311,6 +204,8 @@ func (w *ServerInterfaceWrapper) Add2cart(ctx echo.Context) error {
|
||||
func (w *ServerInterfaceWrapper) PayCart(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.PayCart(ctx)
|
||||
return err
|
||||
@ -338,6 +233,8 @@ func (w *ServerInterfaceWrapper) UpdateCurrencies(ctx echo.Context) error {
|
||||
func (w *ServerInterfaceWrapper) GetHistory(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Parameter object where we will unmarshal all parameters from the context
|
||||
var params GetHistoryParams
|
||||
// ------------- Optional query parameter "p" -------------
|
||||
@ -363,26 +260,41 @@ func (w *ServerInterfaceWrapper) GetHistory(ctx echo.Context) error {
|
||||
func (w *ServerInterfaceWrapper) Add2history(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.Add2history(ctx)
|
||||
return err
|
||||
}
|
||||
|
||||
// ChangeCurrency converts echo context to params.
|
||||
func (w *ServerInterfaceWrapper) ChangeCurrency(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.ChangeCurrency(ctx)
|
||||
return err
|
||||
}
|
||||
|
||||
// RequestMoney converts echo context to params.
|
||||
func (w *ServerInterfaceWrapper) RequestMoney(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Parameter object where we will unmarshal all parameters from the context
|
||||
var params RequestMoneyParams
|
||||
// ------------- Required query parameter "cash" -------------
|
||||
|
||||
err = runtime.BindQueryParameter("form", true, true, "cash", ctx.QueryParams(), ¶ms.Cash)
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter cash: %s", err))
|
||||
}
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.RequestMoney(ctx)
|
||||
err = w.Handler.RequestMoney(ctx, params)
|
||||
return err
|
||||
}
|
||||
|
||||
// ChangeCurrency converts echo context to params.
|
||||
func (w *ServerInterfaceWrapper) ChangeCurrency(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.ChangeCurrency(ctx)
|
||||
return err
|
||||
}
|
||||
|
||||
@ -390,6 +302,8 @@ func (w *ServerInterfaceWrapper) RequestMoney(ctx echo.Context) error {
|
||||
func (w *ServerInterfaceWrapper) PutMoney(ctx echo.Context) error {
|
||||
var err error
|
||||
|
||||
ctx.Set(BearerScopes, []string{""})
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.PutMoney(ctx)
|
||||
return err
|
||||
@ -430,73 +344,79 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
|
||||
router.GET(baseURL+"/account/:accountId", wrapper.GetDirectAccount)
|
||||
router.GET(baseURL+"/accounts", wrapper.PaginationAccounts)
|
||||
router.DELETE(baseURL+"/cart", wrapper.RemoveFromCart)
|
||||
router.PUT(baseURL+"/cart", wrapper.Add2cart)
|
||||
router.PATCH(baseURL+"/cart", wrapper.Add2cart)
|
||||
router.POST(baseURL+"/cart/pay", wrapper.PayCart)
|
||||
router.GET(baseURL+"/currencies", wrapper.GetCurrencies)
|
||||
router.PATCH(baseURL+"/currencies", wrapper.UpdateCurrencies)
|
||||
router.PUT(baseURL+"/currencies", wrapper.UpdateCurrencies)
|
||||
router.GET(baseURL+"/history", wrapper.GetHistory)
|
||||
router.POST(baseURL+"/history", wrapper.Add2history)
|
||||
router.GET(baseURL+"/wallet", wrapper.RequestMoney)
|
||||
router.PATCH(baseURL+"/wallet", wrapper.ChangeCurrency)
|
||||
router.POST(baseURL+"/wallet", wrapper.RequestMoney)
|
||||
router.PUT(baseURL+"/wallet", wrapper.PutMoney)
|
||||
router.POST(baseURL+"/wallet", wrapper.PutMoney)
|
||||
|
||||
}
|
||||
|
||||
// Base64 encoded, gzipped, json marshaled Swagger object
|
||||
var swaggerSpec = []string{
|
||||
|
||||
"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",
|
||||
"pr/3eO8/AQAA//8nG+8kJDMAAA==",
|
||||
"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",
|
||||
}
|
||||
|
||||
// GetSwagger returns the content of the embedded swagger specification file
|
4
internal/swagger/api.go
Normal file
4
internal/swagger/api.go
Normal file
@ -0,0 +1,4 @@
|
||||
package swagger
|
||||
|
||||
//go:generate oapi-codegen --config api.yaml ../../openapi.yaml
|
||||
//go:generate oapi-codegen --config models.yaml ../../openapi.yaml
|
6
internal/swagger/api.yaml
Normal file
6
internal/swagger/api.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
output: api.gen.go
|
||||
package: swagger
|
||||
generate:
|
||||
echo-server: true
|
||||
models: false
|
||||
embedded-spec: true
|
@ -1,3 +0,0 @@
|
||||
package swagger
|
||||
|
||||
//go:generate oapi-codegen --config oapi-codegen.yaml ../../openapi.yaml
|
139
internal/swagger/models.gen.go
Normal file
139
internal/swagger/models.gen.go
Normal file
@ -0,0 +1,139 @@
|
||||
// Package swagger provides primitives to interact with the openapi HTTP API.
|
||||
//
|
||||
// Code generated by github.com/deepmap/oapi-codegen version v1.12.4 DO NOT EDIT.
|
||||
package swagger
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
BearerScopes = "Bearer.Scopes"
|
||||
)
|
||||
|
||||
// Defines values for HistoryType.
|
||||
const (
|
||||
BuyCart HistoryType = "buyCart"
|
||||
DeclinedPayment HistoryType = "declinedPayment"
|
||||
SubsriptionEnd HistoryType = "subsriptionEnd"
|
||||
SuccessfulPayment HistoryType = "successfulPayment"
|
||||
TimeoutPayment HistoryType = "timeoutPayment"
|
||||
)
|
||||
|
||||
// Account defines model for Account.
|
||||
type Account struct {
|
||||
Id string `json:"_id"`
|
||||
Cart []string `json:"cart"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
Deleted bool `json:"deleted"`
|
||||
DeletedAt *time.Time `json:"deletedAt,omitempty"`
|
||||
UpdatedAt time.Time `json:"updatedAt"`
|
||||
UserId string `json:"userId"`
|
||||
Wallet Wallet `json:"wallet"`
|
||||
}
|
||||
|
||||
// Error defines model for Error.
|
||||
type Error struct {
|
||||
Message string `json:"message"`
|
||||
StatusCode *int64 `json:"statusCode,omitempty"`
|
||||
}
|
||||
|
||||
// History defines model for History.
|
||||
type History struct {
|
||||
Comment *string `json:"comment,omitempty"`
|
||||
CreatedAt *time.Time `json:"createdAt,omitempty"`
|
||||
Deleted *bool `json:"deleted,omitempty"`
|
||||
DeletedAt *time.Time `json:"deletedAt,omitempty"`
|
||||
Id *string `json:"id,omitempty"`
|
||||
|
||||
// Subject Я пока не могу предположить, какие будут фильтры по истории, поэтому предлагаю в это поле просто класть строку с json. ибо для каждого типа записи она своя.
|
||||
Subject *string `json:"subject,omitempty"`
|
||||
Type *HistoryType `json:"type,omitempty"`
|
||||
UpdatedAt *time.Time `json:"updatedAt,omitempty"`
|
||||
UserId *string `json:"userId,omitempty"`
|
||||
}
|
||||
|
||||
// HistoryType defines model for History.Type.
|
||||
type HistoryType string
|
||||
|
||||
// Wallet defines model for Wallet.
|
||||
type Wallet struct {
|
||||
Cash *int64 `json:"cash,omitempty"`
|
||||
Currency *string `json:"currency,omitempty"`
|
||||
|
||||
// Money деньги на счету в копейках. Чтобы при перессчётах не возникало денег изниоткуда. фиксируемся к одной валюте, она будет внутренней, никому её не покажем
|
||||
Money *int64 `json:"money,omitempty"`
|
||||
}
|
||||
|
||||
// PaginationAccountsParams defines parameters for PaginationAccounts.
|
||||
type PaginationAccountsParams struct {
|
||||
// Page Номер страницы, начиная с 1
|
||||
Page *int `form:"page,omitempty" json:"page,omitempty"`
|
||||
|
||||
// Limit размер страницы
|
||||
Limit *int `form:"limit,omitempty" json:"limit,omitempty"`
|
||||
}
|
||||
|
||||
// RemoveFromCartParams defines parameters for RemoveFromCart.
|
||||
type RemoveFromCartParams struct {
|
||||
Id string `form:"id" json:"id"`
|
||||
}
|
||||
|
||||
// Add2cartJSONBody defines parameters for Add2cart.
|
||||
type Add2cartJSONBody struct {
|
||||
Id *string `json:"id,omitempty"`
|
||||
}
|
||||
|
||||
// PayCartJSONBody defines parameters for PayCart.
|
||||
type PayCartJSONBody struct {
|
||||
// UserId ID для того, чтобы указать сервису оплаты, какой юзер оплатил
|
||||
UserId *string `json:"userId,omitempty"`
|
||||
}
|
||||
|
||||
// UpdateCurrenciesJSONBody defines parameters for UpdateCurrencies.
|
||||
type UpdateCurrenciesJSONBody = []string
|
||||
|
||||
// GetHistoryParams defines parameters for GetHistory.
|
||||
type GetHistoryParams struct {
|
||||
// P Номер страницы, начиная с 1
|
||||
P *int `form:"p,omitempty" json:"p,omitempty"`
|
||||
|
||||
// S Размер страницы
|
||||
S *int `form:"s,omitempty" json:"s,omitempty"`
|
||||
}
|
||||
|
||||
// RequestMoneyParams defines parameters for RequestMoney.
|
||||
type RequestMoneyParams struct {
|
||||
// Cash Номер страницы, начиная с 1
|
||||
Cash int `form:"cash" json:"cash"`
|
||||
}
|
||||
|
||||
// ChangeCurrencyJSONBody defines parameters for ChangeCurrency.
|
||||
type ChangeCurrencyJSONBody struct {
|
||||
Currency *string `json:"currency,omitempty"`
|
||||
}
|
||||
|
||||
// PutMoneyJSONBody defines parameters for PutMoney.
|
||||
type PutMoneyJSONBody struct {
|
||||
Cash *int `json:"cash,omitempty"`
|
||||
Currency *string `json:"currency,omitempty"`
|
||||
UserId *string `json:"userId,omitempty"`
|
||||
}
|
||||
|
||||
// Add2cartJSONRequestBody defines body for Add2cart for application/json ContentType.
|
||||
type Add2cartJSONRequestBody Add2cartJSONBody
|
||||
|
||||
// PayCartJSONRequestBody defines body for PayCart for application/json ContentType.
|
||||
type PayCartJSONRequestBody PayCartJSONBody
|
||||
|
||||
// UpdateCurrenciesJSONRequestBody defines body for UpdateCurrencies for application/json ContentType.
|
||||
type UpdateCurrenciesJSONRequestBody = UpdateCurrenciesJSONBody
|
||||
|
||||
// Add2historyJSONRequestBody defines body for Add2history for application/json ContentType.
|
||||
type Add2historyJSONRequestBody = History
|
||||
|
||||
// ChangeCurrencyJSONRequestBody defines body for ChangeCurrency for application/json ContentType.
|
||||
type ChangeCurrencyJSONRequestBody ChangeCurrencyJSONBody
|
||||
|
||||
// PutMoneyJSONRequestBody defines body for PutMoney for application/json ContentType.
|
||||
type PutMoneyJSONRequestBody PutMoneyJSONBody
|
4
internal/swagger/models.yaml
Normal file
4
internal/swagger/models.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
output: models.gen.go
|
||||
package: swagger
|
||||
generate:
|
||||
models: true
|
@ -1,7 +0,0 @@
|
||||
output: server.gen.go
|
||||
package: swagger
|
||||
generate:
|
||||
# other servers are available!
|
||||
echo-server: true
|
||||
models: true
|
||||
embedded-spec: true
|
425
openapi.yaml
425
openapi.yaml
@ -4,6 +4,7 @@ info:
|
||||
description: |-
|
||||
Область ответственности сервиса - предоставление пользователю функционала корзины и кошелька.
|
||||
version: 1.0.0
|
||||
|
||||
tags:
|
||||
- name: account
|
||||
description: аккаунт
|
||||
@ -15,14 +16,17 @@ tags:
|
||||
description: кошелёк
|
||||
- name: history
|
||||
description: история
|
||||
|
||||
paths:
|
||||
/account:
|
||||
get:
|
||||
tags:
|
||||
- account
|
||||
summary: Получение текущего аккаунта юзера
|
||||
description: используется при заходе юзера в систему. Айдишник юзера получает из токена, который передаётся в заголовке authorization
|
||||
description: Используется при заходе юзера в систему. Айдишник юзера получает из токена, который передаётся в заголовке authorization
|
||||
operationId: getAccount
|
||||
security:
|
||||
- Bearer: []
|
||||
responses:
|
||||
'200':
|
||||
description: успешное получение
|
||||
@ -32,34 +36,59 @@ paths:
|
||||
$ref: '#/components/schemas/Account'
|
||||
'401':
|
||||
description: Неавторизован
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
'404':
|
||||
description: Такого пользователя нет
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
post:
|
||||
tags:
|
||||
- account
|
||||
summary: создать новый аккаунт
|
||||
description: создаёт новый аккаунт для юзера, если такого ещё не было
|
||||
summary: Создать новый аккаунт
|
||||
description: Создаёт новый аккаунт для юзера, если такого ещё не было
|
||||
operationId: addAccount
|
||||
security:
|
||||
- Bearer: []
|
||||
responses:
|
||||
'201':
|
||||
description: успешное созание аккаунта
|
||||
'200':
|
||||
description: успешное создание аккаунта
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Account'
|
||||
'401':
|
||||
description: Неавторизован
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
delete:
|
||||
tags:
|
||||
- account
|
||||
summary: удалить собственный аккаунт
|
||||
description: помечает аккаунт удалённым
|
||||
operationId: deleteAccount
|
||||
security:
|
||||
- Bearer: []
|
||||
responses:
|
||||
'200':
|
||||
description: успешное удаление аккаунта
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Account'
|
||||
'401':
|
||||
description: Неавторизован
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
|
||||
/accounts:
|
||||
get:
|
||||
tags:
|
||||
@ -68,22 +97,22 @@ paths:
|
||||
description: получает список аккаунтов на указанной странице + общее количество аккаунтов
|
||||
operationId: paginationAccounts
|
||||
parameters:
|
||||
- name: p
|
||||
- name: page
|
||||
in: query
|
||||
description: Номер страницы, начиная с 0
|
||||
description: Номер страницы, начиная с 1
|
||||
required: false
|
||||
explode: false
|
||||
schema:
|
||||
type: integer
|
||||
default: 0
|
||||
- name: s
|
||||
default: 1
|
||||
- name: limit
|
||||
in: query
|
||||
description: размер страницы
|
||||
required: false
|
||||
explode: false
|
||||
schema:
|
||||
type: integer
|
||||
default: 10
|
||||
default: 100
|
||||
responses:
|
||||
'200':
|
||||
description: успешное получение страницы аккаунтов
|
||||
@ -92,60 +121,84 @@ paths:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
count:
|
||||
totalPages:
|
||||
type: integer
|
||||
example: 11
|
||||
items:
|
||||
accounts:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/Account"
|
||||
'401':
|
||||
description: Неавторизован
|
||||
|
||||
/account/{accountId}:
|
||||
get:
|
||||
tags:
|
||||
- account
|
||||
summary: получить аккаунт по айди
|
||||
description: метод необходимый в основном только менеджерам, для получения данных о клиенте
|
||||
summary: Получить аккаунт по ID
|
||||
description: Метод необходимый в основном только менеджерам, для получения данных о клиенте
|
||||
security:
|
||||
- Bearer: []
|
||||
operationId: getDirectAccount
|
||||
parameters:
|
||||
- name: accountId
|
||||
in: path
|
||||
description: айдишник аккаунта
|
||||
description: id аккаунта
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: успешное получение аккаунта
|
||||
description: Успешное получение аккаунта
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Account'
|
||||
'401':
|
||||
description: Неавторизован
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
'404':
|
||||
description: Нет такого пользователя
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
delete:
|
||||
tags:
|
||||
- account
|
||||
summary: Удалить аккаунт по айди
|
||||
description: Метод необходимый в основном только менеджерам, для удаления клиента
|
||||
operationId: deleteDirectAccount
|
||||
security:
|
||||
- Bearer: []
|
||||
parameters:
|
||||
- name: accountId
|
||||
in: path
|
||||
description: ID аккаунта
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Успешное удаление аккаунта
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Account'
|
||||
'401':
|
||||
description: Неавторизован
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
'404':
|
||||
description: Нет такого пользователя
|
||||
delete:
|
||||
tags:
|
||||
- account
|
||||
summary: удалить аккаунт по айди
|
||||
description: метод необходимый в основном только менеджерам, для удаления клиента
|
||||
operationId: deleteDirectAccount
|
||||
parameters:
|
||||
- name: accountId
|
||||
in: path
|
||||
description: айдишник аккаунта
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: успешное удаление аккаунта
|
||||
'401':
|
||||
description: Неавторизован
|
||||
'404':
|
||||
description: Нет такого пользователя
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
|
||||
/currencies:
|
||||
get:
|
||||
tags:
|
||||
@ -165,7 +218,7 @@ paths:
|
||||
- "CAD"
|
||||
items:
|
||||
type: string
|
||||
patch:
|
||||
put:
|
||||
tags:
|
||||
- currency
|
||||
summary: обновляет список одобренных валют
|
||||
@ -182,15 +235,30 @@ paths:
|
||||
items:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: успешное обновление списка валют
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
example:
|
||||
- "RUB"
|
||||
- "USD"
|
||||
- "CAD"
|
||||
items:
|
||||
type: string
|
||||
'401':
|
||||
description: Uanuthorized
|
||||
|
||||
/cart:
|
||||
put:
|
||||
patch:
|
||||
tags:
|
||||
- cart
|
||||
summary: добавляем в корзину тариф
|
||||
description: 'необходимо проверить, что такой тариф существует'
|
||||
summary: Добавляем в корзину тариф
|
||||
description: Необходимо проверить, что такой тариф существует
|
||||
operationId: add2cart
|
||||
security:
|
||||
- Bearer: []
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
@ -202,16 +270,30 @@ paths:
|
||||
example: "807f1f77bcf81cd799439011"
|
||||
responses:
|
||||
'200':
|
||||
description: добавлено в корзину
|
||||
description: Добавлено в корзину
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Account'
|
||||
'401':
|
||||
description: неавторизован
|
||||
description: Неавторизован
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
'404':
|
||||
description: не найден такой тариф
|
||||
description: Не найден такой тариф
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
delete:
|
||||
tags:
|
||||
- cart
|
||||
summary: удаляем из корзины тариф
|
||||
summary: Удаляем из корзины тариф
|
||||
operationId: removeFromCart
|
||||
security:
|
||||
- Bearer: []
|
||||
parameters:
|
||||
- name: id
|
||||
in: query
|
||||
@ -221,30 +303,50 @@ paths:
|
||||
example: "807f1f77bcf81cd799439011"
|
||||
responses:
|
||||
'200':
|
||||
description: удалено из корзины
|
||||
description: Удалено из корзины
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Account'
|
||||
'401':
|
||||
description: неавторизован
|
||||
description: Неавторизован
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
'404':
|
||||
description: не найден такой тариф
|
||||
description: Не найден такой тариф
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
|
||||
/cart/pay:
|
||||
post:
|
||||
tags:
|
||||
- cart
|
||||
summary: оплатить козину
|
||||
description: "- очевидно нужен воркер или очередь(место где можно потрогать кафку), которая будет слать запросы в конечные сервисы для добавления привилегий в аккаунт пользователя\n
|
||||
- в случае если денег в кошельке достаточно - отправить в воркер или очередь задачи на разослать конкретным сервисам добавление привилегий\n
|
||||
- если денег недостаточно, получить ссылку на оплату у сервиса платёжки и вернуть её. в случае оплаты, повторить вызов этого метода\n
|
||||
- очистить корзину"
|
||||
operationId: payCart
|
||||
security:
|
||||
- Bearer: []
|
||||
description: >-
|
||||
- Очевидно нужен воркер или очередь(место где можно потрогать кафку), которая будет слать запросы в конечные сервисы для добавления привилегий в аккаунт пользователя
|
||||
|
||||
- В случае если денег в кошельке достаточно - отправить в воркер или очередь задачи на разослать конкретным сервисам добавление привилегий
|
||||
|
||||
- Если денег недостаточно, получить ссылку на оплату у сервиса платёжки и вернуть её. в случае оплаты, повторить вызов этого метода
|
||||
|
||||
- Очистить корзину
|
||||
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
userId:
|
||||
type: string
|
||||
description: айдишник для того, чтобы указать сервису оплаты, какой юзер оплатил
|
||||
description: ID для того, чтобы указать сервису оплаты, какой юзер оплатил
|
||||
example: "807f1f77bcf81cd799439011"
|
||||
responses:
|
||||
'200':
|
||||
@ -252,19 +354,31 @@ paths:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Account'
|
||||
$ref: '#/components/schemas/Account'
|
||||
'401':
|
||||
description: Неавторизован
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
|
||||
/wallet:
|
||||
patch:
|
||||
tags:
|
||||
- wallet
|
||||
summary: изменить валюту кошелька
|
||||
description: "при запросе:\n
|
||||
- отвалидировать, что такая валюта одобрена \n
|
||||
- получить данные из сервиса cbrf(выдам задачу на него чуть позднее)\n
|
||||
- перевести валюту кошелька в нвоую валюту. кошелёк нарочно целочисленный, чтобы не было претензий к точности с плавающей точкой, поэтому, например долларовый счёт считается в центах"
|
||||
summary: Изменить валюту кошелька
|
||||
operationId: changeCurrency
|
||||
description: >-
|
||||
При запросе необходимо:
|
||||
|
||||
- Отвалидировать, что такая валюта одобрена
|
||||
|
||||
- Получить данные из сервиса cbrf(выдам задачу на него чуть позднее)
|
||||
|
||||
- Перевести валюту кошелька в нвоую валюту. кошелёк нарочно целочисленный, чтобы не было претензий к точности с плавающей точкой, поэтому, например долларовый счёт считается в центах
|
||||
|
||||
security:
|
||||
- Bearer: []
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
@ -276,21 +390,37 @@ paths:
|
||||
example: "USD"
|
||||
responses:
|
||||
'200':
|
||||
description: успешная смена валюты кошелька
|
||||
description: Успешная смена валюты кошелька
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Account"
|
||||
'401':
|
||||
description: Неавторизован
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
'400':
|
||||
description: Такая валюта не одобрена
|
||||
put:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
'404':
|
||||
description: Пользователь не найден
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
post:
|
||||
tags:
|
||||
- wallet
|
||||
summary: зачислить деньги на кошелёк
|
||||
description: "прибавляем полученное значение к cash и при необходимости приводим к валюте кошелька"
|
||||
summary: Зачислить деньги на кошелёк
|
||||
description: "Прибавляем полученное значение к cash и при необходимости приводим к валюте кошелька"
|
||||
operationId: putMoney
|
||||
security:
|
||||
- Bearer: []
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
@ -303,7 +433,7 @@ paths:
|
||||
currency:
|
||||
type: string
|
||||
example: "USD"
|
||||
id:
|
||||
userId:
|
||||
type: string
|
||||
example: "807f1f77bcf81cd799439011"
|
||||
responses:
|
||||
@ -315,25 +445,39 @@ paths:
|
||||
$ref: "#/components/schemas/Account"
|
||||
'400':
|
||||
description: Такая валюта не одобрена
|
||||
post:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
'404':
|
||||
description: Аккаунт не найден
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
get:
|
||||
tags:
|
||||
- wallet
|
||||
summary: запрос на получение ссылки на оплату
|
||||
description: "- формируем запрос к сервису оплаты, с необходимыми постбэками\n
|
||||
- получаем ответ от сервиса оплаты с ссылкой на оплату, которую надо передать пользователю"
|
||||
summary: Запрос на получение ссылки на оплату
|
||||
operationId: requestMoney
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
cash:
|
||||
type: integer
|
||||
example: 10000
|
||||
description: >-
|
||||
- Формируем запрос к сервису оплаты, с необходимыми постбэками
|
||||
|
||||
- Получаем ответ от сервиса оплаты с ссылкой на оплату, которую надо передать пользователю
|
||||
|
||||
security:
|
||||
- Bearer: []
|
||||
parameters:
|
||||
- name: cash
|
||||
in: query
|
||||
description: Номер страницы, начиная с 1
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
default: 10000
|
||||
responses:
|
||||
'200':
|
||||
description: успешный зпрос денег
|
||||
description: Успешный запрос денег
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
@ -343,17 +487,24 @@ paths:
|
||||
type: string
|
||||
example: "https://google.ru"
|
||||
'500':
|
||||
description: сервис оплаты вернул ошибку
|
||||
description: Сервис оплаты вернул ошибку
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
|
||||
/history:
|
||||
get:
|
||||
tags:
|
||||
- history
|
||||
summary: получение лога событий связанных с аккаунтом
|
||||
summary: Получение лога событий связанных с аккаунтом
|
||||
operationId: getHistory
|
||||
security:
|
||||
- Bearer: []
|
||||
parameters:
|
||||
- name: p
|
||||
in: query
|
||||
description: Номер страницы, начиная с 0
|
||||
description: Номер страницы, начиная с 1
|
||||
required: false
|
||||
explode: false
|
||||
schema:
|
||||
@ -361,46 +512,66 @@ paths:
|
||||
default: 0
|
||||
- name: s
|
||||
in: query
|
||||
description: размер страницы
|
||||
description: Размер страницы
|
||||
required: false
|
||||
explode: false
|
||||
schema:
|
||||
type: integer
|
||||
default: 10
|
||||
default: 100
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
description: Успешное получение событий
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
count:
|
||||
totalPages:
|
||||
type: integer
|
||||
example: 11
|
||||
items:
|
||||
records:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Record'
|
||||
$ref: '#/components/schemas/History'
|
||||
'401':
|
||||
description: Неавторизован
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Error'
|
||||
post:
|
||||
tags:
|
||||
- history
|
||||
summary: публикация лога в истории
|
||||
summary: Публикация лога в истории
|
||||
operationId: add2history
|
||||
security:
|
||||
- Bearer: []
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Record"
|
||||
$ref: "#/components/schemas/History"
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
description: Успешная публикация лога
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/History"
|
||||
'500':
|
||||
description: Ошибка при публикации
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
|
||||
|
||||
components:
|
||||
schemas:
|
||||
|
||||
Account:
|
||||
type: object
|
||||
required: [_id, userId, cart, wallet, deleted, createdAt, updatedAt]
|
||||
properties:
|
||||
_id:
|
||||
type: string
|
||||
@ -409,12 +580,27 @@ components:
|
||||
type: string
|
||||
example: "807f1f77bcf81cd799439011"
|
||||
cart:
|
||||
$ref: "#/components/schemas/Cart"
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
example:
|
||||
- "807f1f77bcf81cd799439011"
|
||||
- "807f1f77bcf81cd799439012"
|
||||
wallet:
|
||||
$ref: "#/components/schemas/Wallet"
|
||||
isDeleted:
|
||||
deleted:
|
||||
type: boolean
|
||||
example: false
|
||||
createdAt:
|
||||
type: string
|
||||
format: "date-time"
|
||||
updatedAt:
|
||||
type: string
|
||||
format: "date-time"
|
||||
deletedAt:
|
||||
type: string
|
||||
format: "date-time"
|
||||
|
||||
Wallet:
|
||||
type: object
|
||||
properties:
|
||||
@ -429,16 +615,9 @@ components:
|
||||
type: integer
|
||||
format: int64
|
||||
description: деньги на счету в копейках. Чтобы при перессчётах не возникало денег изниоткуда. фиксируемся к одной валюте, она будет внутренней, никому её не покажем
|
||||
example: 10701
|
||||
Cart:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
example:
|
||||
- "807f1f77bcf81cd799439011"
|
||||
- "807f1f77bcf81cd799439011"
|
||||
- "807f1f77bcf81cd799439011"
|
||||
Record:
|
||||
example: 10701.60
|
||||
|
||||
History:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
@ -451,13 +630,47 @@ components:
|
||||
type: string
|
||||
enum: ["successfulPayment", "declinedPayment", "timeoutPayment", "buyCart", "subsriptionEnd"]
|
||||
example: "successfulPayment"
|
||||
deleted:
|
||||
type: boolean
|
||||
example: false
|
||||
createdAt:
|
||||
type: string
|
||||
format: date-time
|
||||
format: "date-time"
|
||||
updatedAt:
|
||||
type: string
|
||||
format: "date-time"
|
||||
deletedAt:
|
||||
type: string
|
||||
format: "date-time"
|
||||
comment:
|
||||
type: string
|
||||
example: "я это сделал потому что 42"
|
||||
subject:
|
||||
type: string
|
||||
description: я пока не могу предположить, какие будут фильтры по истории, поэтому предлагаю в это поле просто класть строку с json. ибо для каждого типа записи она своя.
|
||||
description: >-
|
||||
Я пока не могу предположить, какие будут фильтры по истории, поэтому
|
||||
предлагаю в это поле просто класть строку с json. ибо для каждого типа
|
||||
записи она своя.
|
||||
example: {"tariffs":["807f1f77bcf81cd799439011","807f1f77bcf81cd799439011"]}
|
||||
|
||||
Error:
|
||||
type: object
|
||||
required:
|
||||
- code
|
||||
- message
|
||||
properties:
|
||||
statusCode:
|
||||
type: integer
|
||||
format: int64
|
||||
example: 404
|
||||
message:
|
||||
type: string
|
||||
example: user not found
|
||||
|
||||
securitySchemes:
|
||||
Bearer: # arbitrary name for the security scheme
|
||||
type: http
|
||||
scheme: bearer
|
||||
bearerFormat: JWT
|
||||
description: >-
|
||||
Enter the token with the `Bearer: ` prefix, e.g. "Bearer abcde12345".
|
||||
|
Loading…
Reference in New Issue
Block a user