refactoring plan
This commit is contained in:
parent
7ae1cdda9f
commit
4c38cc4f5c
20
app/app.go
20
app/app.go
@ -148,6 +148,7 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
|
|||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// TODO: remove roles logic from project
|
||||||
// Start Roles
|
// Start Roles
|
||||||
roles, err := role.NewRoles(ctx, hlogger, role.MongoDalOptions{
|
roles, err := role.NewRoles(ctx, hlogger, role.MongoDalOptions{
|
||||||
DalName: "MongoRoles",
|
DalName: "MongoRoles",
|
||||||
@ -160,9 +161,10 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set routers
|
// Set routers
|
||||||
|
// TODO: remove
|
||||||
validators := h.CreateValidators(
|
validators := h.CreateValidators(
|
||||||
&h.RequestCreatePayment{},
|
&h.RequestCreatePayment{},
|
||||||
&h.RequestCreatePayout{},
|
&h.RequestCreatePayout{},
|
||||||
)
|
)
|
||||||
|
|
||||||
chCommon := h.CommonOpts{
|
chCommon := h.CommonOpts{
|
||||||
@ -170,7 +172,7 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
|
|||||||
Mongo: connMongo,
|
Mongo: connMongo,
|
||||||
Hl: hlogger,
|
Hl: hlogger,
|
||||||
}
|
}
|
||||||
|
// TODO: remove unnecessary with all usages
|
||||||
crucsNotifier, err := tb.NewBot(tb.Settings{
|
crucsNotifier, err := tb.NewBot(tb.Settings{
|
||||||
Token: "",
|
Token: "",
|
||||||
Verbose: false,
|
Verbose: false,
|
||||||
@ -183,6 +185,11 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: use echo or gofiber. please remove this f*cking strange shit
|
||||||
|
// TODO: actualise api for invoice and available methods
|
||||||
|
// invoice используется для получения ссылки на оплату. по сути он выполняет 2 действия: складывает запись запроса в базу, чтобы хранились actions которые надо выполнить в ответ на события, и запросить у соответствующего платёжного сервиса правильную платёжную ссылку
|
||||||
|
// TODO: для каждого платёжного аггрегатора надо реализовать хендлер типа /listener/{paywayId}, где paywayId - айди аггрегатора
|
||||||
|
|
||||||
router, svcRouter, allowedRoles := r.NewCombineRouter("", r.Handlers{
|
router, svcRouter, allowedRoles := r.NewCombineRouter("", r.Handlers{
|
||||||
"/listener/create/refill": {
|
"/listener/create/refill": {
|
||||||
Handle: func(w http.ResponseWriter, r *http.Request) {
|
Handle: func(w http.ResponseWriter, r *http.Request) {
|
||||||
@ -196,13 +203,13 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
|
|||||||
h.CreatePayoutHandler(ch, payWay)
|
h.CreatePayoutHandler(ch, payWay)
|
||||||
},
|
},
|
||||||
}, // pub 0b922668de7e440f263d36bf91c506d3 sek 82afd8dad1db3785d4a94e539e142a39
|
}, // pub 0b922668de7e440f263d36bf91c506d3 sek 82afd8dad1db3785d4a94e539e142a39
|
||||||
"/listener/{payWay}": { // @TODO: изменить эндпоинт - иногда возникает баг когда не работают create/payout
|
"/listener/{payWay}": {
|
||||||
Handle: func(w http.ResponseWriter, r *http.Request) {
|
Handle: func(w http.ResponseWriter, r *http.Request) {
|
||||||
ch := h.NewHandler(w, r, chCommon, validator.Validator{})
|
ch := h.NewHandler(w, r, chCommon, validator.Validator{})
|
||||||
h.PaymentListenerHandler(ch, payWay)
|
h.PaymentListenerHandler(ch, payWay)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"/payoutListener/{payWay}": {
|
"/payoutListener/{payWay}": { //TODO: remove unnecessary
|
||||||
Handle: func(w http.ResponseWriter, r *http.Request) {
|
Handle: func(w http.ResponseWriter, r *http.Request) {
|
||||||
ch := h.NewHandler(w, r, chCommon, validator.Validator{})
|
ch := h.NewHandler(w, r, chCommon, validator.Validator{})
|
||||||
h.PayoutListenerHandler(ch, payWay)
|
h.PayoutListenerHandler(ch, payWay)
|
||||||
@ -216,6 +223,8 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: remove unnecessary
|
||||||
// Set Middlewares
|
// Set Middlewares
|
||||||
mw := middleware.NewMiddleware(
|
mw := middleware.NewMiddleware(
|
||||||
opts.IsProduction,
|
opts.IsProduction,
|
||||||
@ -227,12 +236,15 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
|
|||||||
opts.ExposeHeaders,
|
opts.ExposeHeaders,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
//TODO: remove unnecessary
|
||||||
router.Use(
|
router.Use(
|
||||||
mw.MiddlewareLogger,
|
mw.MiddlewareLogger,
|
||||||
mw.MiddlewareOriginAccess,
|
mw.MiddlewareOriginAccess,
|
||||||
mw.MiddlewareRecovery,
|
mw.MiddlewareRecovery,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// TODO: remove unnecessary
|
||||||
svcRouter.Use(
|
svcRouter.Use(
|
||||||
//mw.MiddlewareJwtCookie,
|
//mw.MiddlewareJwtCookie,
|
||||||
//mw.MiddlewareJwt,
|
//mw.MiddlewareJwt,
|
||||||
|
21
openapi.yaml
21
openapi.yaml
@ -7,6 +7,21 @@ info:
|
|||||||
tags:
|
tags:
|
||||||
- name: pay
|
- name: pay
|
||||||
paths:
|
paths:
|
||||||
|
/available
|
||||||
|
get:
|
||||||
|
description: метод для получения списка доступных вариантов для оплаты
|
||||||
|
tags:
|
||||||
|
- pay
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: список доступных вариантов оплаты
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
example: ["qiwi", "visa", "tinkoff"]
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
/invoice:
|
/invoice:
|
||||||
post:
|
post:
|
||||||
description: метод для создания запроса на оплату
|
description: метод для создания запроса на оплату
|
||||||
@ -50,6 +65,10 @@ components:
|
|||||||
type: string
|
type: string
|
||||||
example: "rub"
|
example: "rub"
|
||||||
description: валюта, в которой юзер хочет запросить деньги. Если для такой валюты нет платёжного решения, через переменные окружения должна передаваться дефолтная валюта, которая будет использоваться в таком случае
|
description: валюта, в которой юзер хочет запросить деньги. Если для такой валюты нет платёжного решения, через переменные окружения должна передаваться дефолтная валюта, которая будет использоваться в таком случае
|
||||||
|
payway:
|
||||||
|
type: string
|
||||||
|
example: "qiwi"
|
||||||
|
description: платёжный метод, который хочет использовать пользователь для пополнения баланса
|
||||||
additional:
|
additional:
|
||||||
type: string
|
type: string
|
||||||
example: "+79885895677"
|
example: "+79885895677"
|
||||||
@ -81,4 +100,4 @@ components:
|
|||||||
data:
|
data:
|
||||||
type: string
|
type: string
|
||||||
description: данные, которые надо передать. в условиях https запросов это json или query string
|
description: данные, которые надо передать. в условиях https запросов это json или query string
|
||||||
example: "{\"some\":\"shit\"}"
|
example: "{\"some\":\"shit\"}"
|
||||||
|
Loading…
Reference in New Issue
Block a user