refactoring plan

This commit is contained in:
skeris 2023-06-02 00:38:33 +03:00
parent 7ae1cdda9f
commit 4c38cc4f5c
2 changed files with 36 additions and 5 deletions

@ -148,6 +148,7 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
return nil
})
// TODO: remove roles logic from project
// Start Roles
roles, err := role.NewRoles(ctx, hlogger, role.MongoDalOptions{
DalName: "MongoRoles",
@ -160,6 +161,7 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
}
// Set routers
// TODO: remove
validators := h.CreateValidators(
&h.RequestCreatePayment{},
&h.RequestCreatePayout{},
@ -170,7 +172,7 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
Mongo: connMongo,
Hl: hlogger,
}
// TODO: remove unnecessary with all usages
crucsNotifier, err := tb.NewBot(tb.Settings{
Token: "",
Verbose: false,
@ -183,6 +185,11 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
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{
"/listener/create/refill": {
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)
},
}, // pub 0b922668de7e440f263d36bf91c506d3 sek 82afd8dad1db3785d4a94e539e142a39
"/listener/{payWay}": { // @TODO: изменить эндпоинт - иногда возникает баг когда не работают create/payout
"/listener/{payWay}": {
Handle: func(w http.ResponseWriter, r *http.Request) {
ch := h.NewHandler(w, r, chCommon, validator.Validator{})
h.PaymentListenerHandler(ch, payWay)
},
},
"/payoutListener/{payWay}": {
"/payoutListener/{payWay}": { //TODO: remove unnecessary
Handle: func(w http.ResponseWriter, r *http.Request) {
ch := h.NewHandler(w, r, chCommon, validator.Validator{})
h.PayoutListenerHandler(ch, payWay)
@ -216,6 +223,8 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
},
})
// TODO: remove unnecessary
// Set Middlewares
mw := middleware.NewMiddleware(
opts.IsProduction,
@ -227,12 +236,15 @@ func New(ctx context.Context, options interface{}) (appInit.CommonApp, error) {
opts.ExposeHeaders,
)
//TODO: remove unnecessary
router.Use(
mw.MiddlewareLogger,
mw.MiddlewareOriginAccess,
mw.MiddlewareRecovery,
)
// TODO: remove unnecessary
svcRouter.Use(
//mw.MiddlewareJwtCookie,
//mw.MiddlewareJwt,

@ -7,6 +7,21 @@ info:
tags:
- name: pay
paths:
/available
get:
description: метод для получения списка доступных вариантов для оплаты
tags:
- pay
responses:
'200':
description: список доступных вариантов оплаты
content:
application/json:
schema:
type: array
example: ["qiwi", "visa", "tinkoff"]
items:
type: string
/invoice:
post:
description: метод для создания запроса на оплату
@ -50,6 +65,10 @@ components:
type: string
example: "rub"
description: валюта, в которой юзер хочет запросить деньги. Если для такой валюты нет платёжного решения, через переменные окружения должна передаваться дефолтная валюта, которая будет использоваться в таком случае
payway:
type: string
example: "qiwi"
description: платёжный метод, который хочет использовать пользователь для пополнения баланса
additional:
type: string
example: "+79885895677"