2023-06-22 09:36:43 +00:00
|
|
|
package initialize
|
|
|
|
|
|
|
|
import (
|
2024-11-18 07:23:41 +00:00
|
|
|
"gitea.pena/PenaSide/customer/internal/interface/client"
|
|
|
|
"gitea.pena/PenaSide/customer/internal/models"
|
2024-11-26 15:28:42 +00:00
|
|
|
"go.uber.org/zap"
|
|
|
|
"gopkg.in/tucnak/telebot.v2"
|
2023-06-22 09:36:43 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
type ClientsDeps struct {
|
2024-11-26 15:28:42 +00:00
|
|
|
Logger *zap.Logger
|
|
|
|
AuthURL string
|
|
|
|
HubadminURL string
|
|
|
|
CurrencyURL string
|
|
|
|
DiscountServiceURL string
|
|
|
|
PaymentServiceURL string
|
|
|
|
VerificationURL string
|
|
|
|
TemplategenURL string
|
|
|
|
MailClient models.MailClientCfg
|
|
|
|
CodewordServiceHost string
|
|
|
|
NotificationRsPayChannel int64
|
|
|
|
Notifier *telebot.Bot
|
2023-06-22 09:36:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type Clients struct {
|
2023-11-26 13:02:01 +00:00
|
|
|
AuthClient *client.AuthClient
|
|
|
|
HubadminClient *client.HubadminClient
|
|
|
|
CurrencyClient *client.CurrencyClient
|
|
|
|
DiscountClient *client.DiscountClient
|
|
|
|
PaymentClient *client.PaymentClient
|
|
|
|
VerificationClient *client.VerificationClient
|
|
|
|
TemplateClient *client.TemplateClient
|
2024-02-05 11:13:36 +00:00
|
|
|
MailClient *client.MailClient
|
2024-05-21 13:50:26 +00:00
|
|
|
CodewordClient *client.CodewordClient
|
2024-10-20 13:40:30 +00:00
|
|
|
TelegramClient *client.TelegramClient
|
2023-06-22 09:36:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func NewClients(deps ClientsDeps) *Clients {
|
|
|
|
return &Clients{
|
|
|
|
AuthClient: client.NewAuthClient(client.AuthClientDeps{
|
|
|
|
Logger: deps.Logger,
|
2024-11-26 15:28:42 +00:00
|
|
|
URL: deps.AuthURL,
|
2023-06-22 09:36:43 +00:00
|
|
|
}),
|
|
|
|
HubadminClient: client.NewHubadminClient(client.HubadminClientDeps{
|
|
|
|
Logger: deps.Logger,
|
2024-11-26 15:28:42 +00:00
|
|
|
URL: deps.HubadminURL,
|
2023-06-22 09:36:43 +00:00
|
|
|
}),
|
|
|
|
CurrencyClient: client.NewCurrencyClient(client.CurrencyClientDeps{
|
|
|
|
Logger: deps.Logger,
|
2024-11-26 15:28:42 +00:00
|
|
|
URL: deps.CurrencyURL,
|
2023-06-22 09:36:43 +00:00
|
|
|
}),
|
|
|
|
DiscountClient: client.NewDiscountClient(client.DiscountClientDeps{
|
|
|
|
Logger: deps.Logger,
|
2024-11-26 15:28:42 +00:00
|
|
|
DiscountServiceHost: deps.DiscountServiceURL,
|
2023-06-22 09:36:43 +00:00
|
|
|
}),
|
|
|
|
PaymentClient: client.NewPaymentClient(client.PaymentClientDeps{
|
|
|
|
Logger: deps.Logger,
|
2024-11-26 15:28:42 +00:00
|
|
|
PaymentServiceHost: deps.PaymentServiceURL,
|
2023-06-22 09:36:43 +00:00
|
|
|
}),
|
2023-11-26 13:02:01 +00:00
|
|
|
VerificationClient: client.NewVerificationClient(client.VerificationClientDeps{
|
|
|
|
Logger: deps.Logger,
|
2024-11-26 15:28:42 +00:00
|
|
|
URL: deps.VerificationURL,
|
2023-11-26 13:02:01 +00:00
|
|
|
}),
|
|
|
|
TemplateClient: client.NewTemplateClient(client.TemplateClientDeps{
|
|
|
|
Logger: deps.Logger,
|
2024-11-26 15:28:42 +00:00
|
|
|
URL: deps.TemplategenURL,
|
2024-02-05 11:13:36 +00:00
|
|
|
}),
|
2024-11-26 15:28:42 +00:00
|
|
|
MailClient: client.NewMailClient(deps.MailClient, deps.Logger),
|
2024-05-21 13:50:26 +00:00
|
|
|
CodewordClient: client.NewCodewordClient(client.CodewordClientDeps{
|
|
|
|
Logger: deps.Logger,
|
2024-11-26 15:28:42 +00:00
|
|
|
CodewordServiceHost: deps.CodewordServiceHost,
|
2024-05-21 13:50:26 +00:00
|
|
|
}),
|
2024-10-20 13:40:30 +00:00
|
|
|
TelegramClient: client.NewTelegramClient(client.TelegramClientDeps{
|
|
|
|
Notifier: deps.Notifier,
|
|
|
|
NotifierPayChannel: deps.NotificationRsPayChannel,
|
|
|
|
}),
|
2023-06-22 09:36:43 +00:00
|
|
|
}
|
|
|
|
}
|