add to reqbody money< and move emailaddress to config

This commit is contained in:
Pavel 2024-02-15 12:03:24 +03:00
parent f9a7389870
commit bc4363c2bc
10 changed files with 127 additions and 86 deletions

@ -524,6 +524,17 @@ paths:
summary: Обработка запроса RSPay
security:
- Bearer: [ ]
requestBody:
content:
application/json:
schema:
type: object
required: [ type, currency, amount ]
properties:
money:
type: integer
example: 1000
responses:
'200':
description: Успех

@ -71,6 +71,7 @@ func NewClients(deps ClientsDeps) *Clients {
},
ApiKey: deps.MailClient.ApiKey,
FiberClient: fiber.AcquireClient(),
MailAddress: deps.MailClient.MailAddress,
}),
}
}

@ -17,6 +17,7 @@ type MailClientDeps struct {
ApiKey string
FiberClient *fiber.Client
Logger *zap.Logger
MailAddress string
}
type MailClient struct {
@ -32,9 +33,10 @@ func NewMailClient(deps MailClientDeps) *MailClient {
}
}
func (receiver *MailClient) SendMessage(userEmail string, verification *models.Verification) errors.Error {
func (receiver *MailClient) SendMessage(userEmail string, verification *models.Verification, money int) errors.Error {
body := fmt.Sprintf("<p>Поступила заявка на оплату через Р/С от пользователя с почтой %s (%s)</p>"+
"<p>Вот файлы его верификации:</p>", userEmail, verification.UserID)
"<p>Вот файлы его верификации:</p>"+
"<p>Запрос на оплату: %d рублей</p>", userEmail, verification.UserID, money)
for _, file := range verification.Files {
body += fmt.Sprintf("<p>%s: <a href=\"%s\">%s</a></p>", file.Name, file.URL, file.URL)
@ -46,7 +48,7 @@ func (receiver *MailClient) SendMessage(userEmail string, verification *models.V
fields := map[string]string{
"from": receiver.deps.Sender,
"to": "sells@pena.digital",
"to": receiver.deps.MailAddress,
"subject": "Новая заявка на оплату через Р/С",
"html": body,
}

@ -4,6 +4,7 @@ import (
"fmt"
"log"
"net/http"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/swagger"
"github.com/labstack/echo/v4"
"go.uber.org/zap"
@ -133,7 +134,17 @@ func (receiver *Controller) PostWalletRspay(ctx echo.Context) error {
))
}
if err := receiver.walletService.PostWalletRspay(ctx.Request().Context(), userID); err != nil {
var req swagger.PostWalletRspayJSONBody
if err := ctx.Bind(&req); err != nil {
receiver.logger.Error("failed to bind request", zap.Error(err))
return errors.HTTP(ctx, errors.New(
fmt.Errorf("failed to bind request: %s", err),
errors.ErrInvalidArgs,
))
}
if err := receiver.walletService.PostWalletRspay(ctx.Request().Context(), userID, req); err != nil {
if err == errors.ErrNoAccess {
return errors.HTTP(ctx, err)
}

@ -756,6 +756,12 @@ func (api *API2) PostWalletRspay(ctx echo.Context) error {
return api.noauth(ctx)
}
var req PostWalletRspayJSONBody
if err := ctx.Bind(&req); err != nil {
api.logger.Error("failed to bind request", zap.Error(err))
return api.error(ctx, http.StatusBadRequest, "failed to bind request")
}
user, err := api.account.FindByUserID(ctx.Request().Context(), userID)
if err != nil {
return api.errorOld(ctx, err)
@ -780,7 +786,7 @@ func (api *API2) PostWalletRspay(ctx echo.Context) error {
return api.errorOld(ctx, err)
}
err = api.clients.mail.SendMessage(authData.Login, verification)
err = api.clients.mail.SendMessage(authData.Login, verification, *req.Money)
if err != nil {
return api.errorOld(ctx, err)
}

@ -443,81 +443,81 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
var swaggerSpec = []string{
"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",
}
// GetSwagger returns the content of the embedded swagger specification file

@ -202,6 +202,11 @@ type RequestMoneyJSONBody struct {
Type PaymentType `json:"type"`
}
// PostWalletRspayJSONBody defines parameters for PostWalletRspay.
type PostWalletRspayJSONBody struct {
Money *int `json:"money,omitempty"`
}
// ChangeAccountJSONRequestBody defines body for ChangeAccount for application/json ContentType.
type ChangeAccountJSONRequestBody = Name
@ -225,3 +230,6 @@ type ChangeCurrencyJSONRequestBody ChangeCurrencyJSONBody
// RequestMoneyJSONRequestBody defines body for RequestMoney for application/json ContentType.
type RequestMoneyJSONRequestBody RequestMoneyJSONBody
// PostWalletRspayJSONRequestBody defines body for PostWalletRspay for application/json ContentType.
type PostWalletRspayJSONRequestBody PostWalletRspayJSONBody

@ -105,10 +105,11 @@ type TemplategenMicroserviceURL struct {
}
type MailConfiguration struct {
ApiUrl string `env:"API_URL,required"`
Sender string `env:"MAIL_SENDER,required"`
Auth PlainAuth
ApiKey string `env:"MAIL_API_KEY,required"`
ApiUrl string `env:"API_URL,required"`
Sender string `env:"MAIL_SENDER,required"`
Auth PlainAuth
ApiKey string `env:"MAIL_API_KEY,required"`
MailAddress string `env:"MAIL_ADDRESS,required"`
}
type PlainAuth struct {

@ -5,6 +5,7 @@ import (
"fmt"
"log"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/client"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/swagger"
"go.uber.org/zap"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/errors"
@ -284,7 +285,7 @@ func (receiver *Service) ChangeCurrency(ctx context.Context, userID string, curr
return updatedAccount, nil
}
func (receiver *Service) PostWalletRspay(ctx context.Context, userID string) errors.Error {
func (receiver *Service) PostWalletRspay(ctx context.Context, userID string, req swagger.PostWalletRspayJSONBody) errors.Error {
user, err := receiver.repository.FindByUserID(ctx, userID)
if err != nil {
return err
@ -321,7 +322,7 @@ func (receiver *Service) PostWalletRspay(ctx context.Context, userID string) err
return err
}
err = receiver.mailClient.SendMessage(authData.Login, verification)
err = receiver.mailClient.SendMessage(authData.Login, verification, *req.Money)
if err != nil {
return err
}

@ -31,6 +31,6 @@ func TestSendMessage(t *testing.T) {
},
}
err := mailClient.SendMessage(userEmail, verification)
err := mailClient.SendMessage(userEmail, verification, 10)
assert.NoError(t, err, "successful")
}