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