generated from PenaSide/GolangTemplate
52 lines
1.7 KiB
Go
52 lines
1.7 KiB
Go
![]() |
package initialize
|
||
|
|
||
|
import (
|
||
|
"github.com/sirupsen/logrus"
|
||
|
"penahub.gitlab.yandexcloud.net/pena-services/pena-social-auth/internal/models"
|
||
|
"penahub.gitlab.yandexcloud.net/pena-services/pena-social-auth/internal/service/amocrm"
|
||
|
"penahub.gitlab.yandexcloud.net/pena-services/pena-social-auth/internal/service/auth"
|
||
|
"penahub.gitlab.yandexcloud.net/pena-services/pena-social-auth/internal/service/encrypt"
|
||
|
"penahub.gitlab.yandexcloud.net/pena-services/pena-social-auth/internal/service/oauth"
|
||
|
"penahub.gitlab.yandexcloud.net/pena-services/pena-social-auth/internal/utils"
|
||
|
)
|
||
|
|
||
|
type ServicesDeps struct {
|
||
|
Logger *logrus.Logger
|
||
|
Config *models.ServiceConfiguration
|
||
|
Repositories *Repositories
|
||
|
Clients *Clients
|
||
|
}
|
||
|
|
||
|
type Services struct {
|
||
|
AmocrmService *amocrm.Service
|
||
|
AmocrmOAuthService *oauth.Service[models.AmocrmUserInformation]
|
||
|
}
|
||
|
|
||
|
func NewServices(deps *ServicesDeps) *Services {
|
||
|
authService := auth.New(&auth.Deps{
|
||
|
Logger: deps.Logger,
|
||
|
AuthClient: deps.Clients.AuthClient,
|
||
|
EncryptionService: encrypt.New(&encrypt.ServiceDeps{
|
||
|
JWT: utils.NewJWT[models.JWTAuthUser](&deps.Config.JWT),
|
||
|
PrivateCurveKey: deps.Config.AuthMicroservice.PrivateSignKey,
|
||
|
SignSecret: deps.Config.AuthMicroservice.AuthGroup,
|
||
|
}),
|
||
|
})
|
||
|
|
||
|
amocrmOAuthService := oauth.New(&oauth.Deps[models.AmocrmUserInformation]{
|
||
|
Logger: deps.Logger,
|
||
|
ServiceClient: deps.Clients.AmocrmClient,
|
||
|
OAuthClient: deps.Clients.AmocrmOAuthClient,
|
||
|
})
|
||
|
|
||
|
return &Services{
|
||
|
AmocrmOAuthService: amocrmOAuthService,
|
||
|
AmocrmService: amocrm.New(&amocrm.Deps{
|
||
|
Logger: deps.Logger,
|
||
|
AuthService: authService,
|
||
|
Repository: deps.Repositories.AmocrmRepository,
|
||
|
OAuthService: amocrmOAuthService,
|
||
|
}),
|
||
|
}
|
||
|
}
|