customer/internal/initialize/clients.go
2023-05-16 04:12:34 +03:00

47 lines
1.3 KiB
Go

package initialize
import (
"github.com/sirupsen/logrus"
"golang.org/x/oauth2"
"penahub.gitlab.yandexcloud.net/pena-services/pena-social-auth/internal/client"
"penahub.gitlab.yandexcloud.net/pena-services/pena-social-auth/internal/models"
)
type ClientsDeps struct {
Logger *logrus.Logger
GoogleURL *models.GoogleURL
AmocrmURL *models.AmocrmURL
AuthURL *models.AuthMicroServiceURL
AmocrmOAuthConfiguration *oauth2.Config
}
type Clients struct {
GoogleClient *client.GoogleClient
VKClient *client.VKClient
AmocrmClient *client.AmocrmClient
AuthClient *client.AuthClient
AmocrmOAuthClient *client.OAuthClient
}
func NewClients(deps *ClientsDeps) *Clients {
return &Clients{
VKClient: client.NewVKClient(deps.Logger),
GoogleClient: client.NewGoogleClient(&client.GoogleClientDeps{
Logger: deps.Logger,
URLs: deps.GoogleURL,
}),
AmocrmClient: client.NewAmocrmClient(&client.AmocrmClientDeps{
Logger: deps.Logger,
URLs: deps.AmocrmURL,
}),
AuthClient: client.NewAuthClient(&client.AuthClientDeps{
Logger: deps.Logger,
URLs: deps.AuthURL,
}),
AmocrmOAuthClient: client.NewOAuthClient(&client.OAuthClientDeps{
Logger: deps.Logger,
Config: deps.AmocrmOAuthConfiguration,
}),
}
}