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 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,

@ -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\"}"