package initialize import ( "gitea.pena/PenaSide/treasurer/internal/client" "gitea.pena/PenaSide/treasurer/internal/errors" "go.uber.org/zap" ) type ClientsDeps struct { Logger *zap.Logger Config Config } type Clients struct { Callback *client.CallbackClient Yandex *client.YandexClient } func NewClients(deps ClientsDeps) (*Clients, errors.Error) { callbackClient, err := client.NewCallbackClient(client.CallbackClientDeps{Logger: deps.Logger}) if err != nil { return nil, err } yandexClient, err := client.NewYandexClient(client.YandexClientDeps{ Logger: deps.Logger, YooMoneyStoreID: deps.Config.YooMoneyStoreID, YooMoneySecretKey: deps.Config.YooMoneySecretKey, YooMoneyWebhooksURL: deps.Config.YooMoneyWebhooksURL, YooMoneyPaymentsURL: deps.Config.YooMoneyPaymentsURL, }) if err != nil { return nil, err } return &Clients{ Callback: callbackClient, Yandex: yandexClient, }, nil }