Skip to content

Commit ae70767

Browse files
authored
refactor(controlplane): require licenser via service constructors (#2705)
1 parent 5c771be commit ae70767

32 files changed

Lines changed: 547 additions & 278 deletions

api/handlers/auth.go

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -63,17 +63,18 @@ func (h *Handler) InitSSO(w http.ResponseWriter, r *http.Request) {
6363
if host == "" {
6464
host = configuration.Host
6565
}
66-
lu := services.LoginUserSSOService{
67-
UserRepo: users.New(h.A.Logger, h.A.DB),
68-
OrgRepo: organisations.New(h.A.Logger, h.A.DB),
69-
OrgMemberRepo: organisation_members.New(h.A.Logger, h.A.DB),
70-
JWT: jwt.NewJwt(&configuration.Auth.Jwt, h.A.Cache),
71-
ConfigRepo: h.A.ConfigRepo,
72-
LicenseKey: licenseKey,
73-
Host: host,
74-
Licenser: h.A.Licenser,
75-
Logger: h.A.Logger,
76-
}
66+
lu := services.NewLoginUserSSOService(
67+
users.New(h.A.Logger, h.A.DB),
68+
organisations.New(h.A.Logger, h.A.DB),
69+
organisation_members.New(h.A.Logger, h.A.DB),
70+
jwt.NewJwt(&configuration.Auth.Jwt, h.A.Cache),
71+
h.A.ConfigRepo,
72+
h.A.Licenser,
73+
nil,
74+
h.A.Logger,
75+
licenseKey,
76+
host,
77+
)
7778

7879
resp, err := lu.Run()
7980
if err != nil {
@@ -87,16 +88,18 @@ func (h *Handler) InitSSO(w http.ResponseWriter, r *http.Request) {
8788

8889
func (h *Handler) RedeemSSOCallback(w http.ResponseWriter, r *http.Request) {
8990
configuration := h.A.Cfg
90-
lu := services.LoginUserSSOService{
91-
UserRepo: users.New(h.A.Logger, h.A.DB),
92-
OrgRepo: organisations.New(h.A.Logger, h.A.DB),
93-
OrgMemberRepo: organisation_members.New(h.A.Logger, h.A.DB),
94-
JWT: jwt.NewJwt(&configuration.Auth.Jwt, h.A.Cache),
95-
ConfigRepo: h.A.ConfigRepo,
96-
LicenseKey: configuration.LicenseKey,
97-
Licenser: h.A.Licenser,
98-
Logger: h.A.Logger,
99-
}
91+
lu := services.NewLoginUserSSOService(
92+
users.New(h.A.Logger, h.A.DB),
93+
organisations.New(h.A.Logger, h.A.DB),
94+
organisation_members.New(h.A.Logger, h.A.DB),
95+
jwt.NewJwt(&configuration.Auth.Jwt, h.A.Cache),
96+
h.A.ConfigRepo,
97+
h.A.Licenser,
98+
nil,
99+
h.A.Logger,
100+
configuration.LicenseKey,
101+
"",
102+
)
100103

101104
tokenResp, err := lu.RedeemToken(r.URL.Query())
102105
if err != nil {
@@ -214,14 +217,14 @@ func (h *Handler) LoginUser(w http.ResponseWriter, r *http.Request) {
214217
return
215218
}
216219

217-
lu := services.LoginUserService{
218-
UserRepo: users.New(h.A.Logger, h.A.DB),
219-
OrgMemberRepo: organisation_members.New(h.A.Logger, h.A.DB),
220-
Cache: h.A.Cache,
221-
JWT: jwt.NewJwt(&configuration.Auth.Jwt, h.A.Cache),
222-
Data: &newUser,
223-
Licenser: h.A.Licenser,
224-
}
220+
lu := services.NewLoginUserService(
221+
users.New(h.A.Logger, h.A.DB),
222+
organisation_members.New(h.A.Logger, h.A.DB),
223+
h.A.Cache,
224+
jwt.NewJwt(&configuration.Auth.Jwt, h.A.Cache),
225+
&newUser,
226+
h.A.Licenser,
227+
)
225228

226229
user, token, err := lu.Run(r.Context())
227230
if err != nil {

api/handlers/endpoint.go

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,18 @@ func (h *Handler) CreateEndpoint(w http.ResponseWriter, r *http.Request) {
9494
e.OwnerID = pLink.OwnerID
9595
}
9696

97-
ce := services.CreateEndpointService{
98-
EndpointRepo: endpointsvc.New(h.A.Logger, h.A.DB),
99-
ProjectRepo: h.projectRepo(),
100-
Licenser: h.A.Licenser,
101-
E: e,
102-
ProjectID: project.UID,
103-
FeatureFlag: h.A.FFlag,
104-
FeatureFlagFetcher: h.A.FeatureFlagFetcher,
105-
EarlyAdopterFeatureFetcher: h.A.EarlyAdopterFeatureFetcher,
106-
DB: h.A.DB,
107-
Logger: h.A.Logger,
108-
}
97+
ce := services.NewCreateEndpointService(
98+
endpointsvc.New(h.A.Logger, h.A.DB),
99+
h.projectRepo(),
100+
h.A.Licenser,
101+
h.A.FFlag,
102+
h.A.FeatureFlagFetcher,
103+
h.A.EarlyAdopterFeatureFetcher,
104+
h.A.DB,
105+
h.A.Logger,
106+
e,
107+
project.UID,
108+
)
109109

110110
endpoint, err := ce.Run(r.Context())
111111
if err != nil {
@@ -477,20 +477,20 @@ func (h *Handler) UpdateEndpoint(w http.ResponseWriter, r *http.Request) {
477477
return
478478
}
479479

480-
ce := services.UpdateEndpointService{
481-
Cache: h.A.Cache,
482-
EndpointRepo: endpointsvc.New(h.A.Logger, h.A.DB),
483-
ProjectRepo: h.projectRepo(),
484-
Licenser: h.A.Licenser,
485-
FeatureFlag: h.A.FFlag,
486-
FeatureFlagFetcher: h.A.FeatureFlagFetcher,
487-
EarlyAdopterFeatureFetcher: h.A.EarlyAdopterFeatureFetcher,
488-
DB: h.A.DB,
489-
Logger: h.A.Logger,
490-
E: e,
491-
Endpoint: endpoint,
492-
Project: project,
493-
}
480+
ce := services.NewUpdateEndpointService(
481+
h.A.Cache,
482+
endpointsvc.New(h.A.Logger, h.A.DB),
483+
h.projectRepo(),
484+
h.A.Licenser,
485+
h.A.FFlag,
486+
h.A.FeatureFlagFetcher,
487+
h.A.EarlyAdopterFeatureFetcher,
488+
h.A.DB,
489+
h.A.Logger,
490+
e,
491+
endpoint,
492+
project,
493+
)
494494

495495
endpoint, err = ce.Run(r.Context())
496496
if err != nil {

api/handlers/organisation.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,15 @@ func (h *Handler) CreateOrganisation(w http.ResponseWriter, r *http.Request) {
124124
}
125125

126126
orgRepo := organisations.New(h.A.Logger, h.A.DB)
127-
co := services.CreateOrganisationService{
128-
OrgRepo: orgRepo,
129-
OrgMemberRepo: organisation_members.New(h.A.Logger, h.A.DB),
130-
NewOrg: &newOrg,
131-
User: user,
132-
Licenser: h.A.Licenser,
133-
Logger: h.A.Logger,
134-
}
127+
co := services.NewCreateOrganisationService(
128+
orgRepo,
129+
organisation_members.New(h.A.Logger, h.A.DB),
130+
&newOrg,
131+
user,
132+
h.A.Licenser,
133+
"",
134+
h.A.Logger,
135+
)
135136

136137
organisation, err := co.Run(r.Context())
137138
if err != nil {

api/handlers/organisation_invite.go

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,17 @@ func (h *Handler) InviteUserToOrganisation(w http.ResponseWriter, r *http.Reques
5353
}
5454
}
5555

56-
inviteService := &services.InviteUserService{
57-
Queue: h.A.Queue,
58-
InviteRepo: organisation_invites.New(h.A.Logger, h.A.DB),
59-
OrgMemberRepo: organisation_members.New(h.A.Logger, h.A.DB),
60-
InviteeEmail: newIV.InviteeEmail,
61-
Licenser: h.A.Licenser,
62-
Role: newIV.Role,
63-
User: user,
64-
Organisation: org,
65-
Logger: h.A.Logger,
66-
}
56+
inviteService := services.NewInviteUserService(
57+
h.A.Queue,
58+
organisation_invites.New(h.A.Logger, h.A.DB),
59+
organisation_members.New(h.A.Logger, h.A.DB),
60+
newIV.InviteeEmail,
61+
newIV.Role,
62+
user,
63+
org,
64+
h.A.Licenser,
65+
h.A.Logger,
66+
)
6767

6868
iv, err := inviteService.Run(r.Context())
6969
if err != nil {
@@ -111,18 +111,18 @@ func (h *Handler) ProcessOrganisationMemberInvite(w http.ResponseWriter, r *http
111111
return
112112
}
113113

114-
prc := services.ProcessInviteService{
115-
Queue: h.A.Queue,
116-
InviteRepo: organisation_invites.New(h.A.Logger, h.A.DB),
117-
UserRepo: users.New(h.A.Logger, h.A.DB),
118-
OrgRepo: organisations.New(h.A.Logger, h.A.DB),
119-
OrgMemberRepo: organisation_members.New(h.A.Logger, h.A.DB),
120-
Licenser: h.A.Licenser,
121-
Token: token,
122-
Accepted: accepted,
123-
NewUser: newUser,
124-
Logger: h.A.Logger,
125-
}
114+
prc := services.NewProcessInviteService(
115+
h.A.Queue,
116+
organisation_invites.New(h.A.Logger, h.A.DB),
117+
users.New(h.A.Logger, h.A.DB),
118+
organisations.New(h.A.Logger, h.A.DB),
119+
organisation_members.New(h.A.Logger, h.A.DB),
120+
h.A.Licenser,
121+
token,
122+
accepted,
123+
newUser,
124+
h.A.Logger,
125+
)
126126

127127
err = prc.Run(r.Context())
128128
if err != nil {

api/handlers/project.go

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,15 @@ func createProjectService(h *Handler) *services.ProjectService {
2828
eventDeliveryRepo := event_deliveries.New(h.A.Logger, h.A.DB)
2929
eventTypesRepo := event_types.New(h.A.Logger, h.A.DB)
3030

31-
projectService := services.ProjectService{
32-
ApiKeyRepo: apiKeyRepo,
33-
ProjectRepo: projectRepo,
34-
EventRepo: eventRepo,
35-
EventDeliveryRepo: eventDeliveryRepo,
36-
EventTypesRepo: eventTypesRepo,
37-
Licenser: h.A.Licenser,
38-
Logger: h.A.Logger,
39-
}
40-
41-
return &projectService
31+
return services.NewProjectService(
32+
apiKeyRepo,
33+
projectRepo,
34+
eventRepo,
35+
eventDeliveryRepo,
36+
eventTypesRepo,
37+
h.A.Licenser,
38+
h.A.Logger,
39+
)
4240
}
4341

4442
func (h *Handler) GetProject(w http.ResponseWriter, r *http.Request) {

api/handlers/subscription.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -225,15 +225,15 @@ func (h *Handler) CreateSubscription(w http.ResponseWriter, r *http.Request) {
225225
}
226226
}
227227

228-
cs := services.CreateSubscriptionService{
229-
SubRepo: subscriptions.New(h.A.Logger, h.A.DB),
230-
EndpointRepo: endpoints.New(h.A.Logger, h.A.DB),
231-
SourceRepo: sources.New(h.A.Logger, h.A.DB),
232-
Licenser: h.A.Licenser,
233-
Project: project,
234-
NewSubscription: &sub,
235-
Logger: h.A.Logger,
236-
}
228+
cs := services.NewCreateSubscriptionService(
229+
subscriptions.New(h.A.Logger, h.A.DB),
230+
endpoints.New(h.A.Logger, h.A.DB),
231+
sources.New(h.A.Logger, h.A.DB),
232+
project,
233+
&sub,
234+
h.A.Licenser,
235+
h.A.Logger,
236+
)
237237

238238
subscription, err := cs.Run(r.Context())
239239
if err != nil {
@@ -376,17 +376,17 @@ func (h *Handler) UpdateSubscription(w http.ResponseWriter, r *http.Request) {
376376
}
377377
}
378378

379-
us := services.UpdateSubscriptionService{
380-
SubRepo: subscriptions.New(h.A.Logger, h.A.DB),
381-
EndpointRepo: endpoints.New(h.A.Logger, h.A.DB),
382-
ProjectRepo: h.projectRepo(),
383-
SourceRepo: sources.New(h.A.Logger, h.A.DB),
384-
Licenser: h.A.Licenser,
385-
ProjectId: project.UID,
386-
SubscriptionId: chi.URLParam(r, "subscriptionID"),
387-
Update: &update,
388-
Logger: h.A.Logger,
389-
}
379+
us := services.NewUpdateSubscriptionService(
380+
subscriptions.New(h.A.Logger, h.A.DB),
381+
endpoints.New(h.A.Logger, h.A.DB),
382+
h.projectRepo(),
383+
sources.New(h.A.Logger, h.A.DB),
384+
h.A.Licenser,
385+
h.A.Logger,
386+
project.UID,
387+
chi.URLParam(r, "subscriptionID"),
388+
&update,
389+
)
390390

391391
sub, err := us.Run(r.Context())
392392
if err != nil {

api/handlers/user.go

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,18 @@ func (h *Handler) RegisterUser(w http.ResponseWriter, r *http.Request) {
4545
return
4646
}
4747

48-
rs := services.RegisterUserService{
49-
UserRepo: users.New(h.A.Logger, h.A.DB),
50-
OrgRepo: organisations.New(h.A.Logger, h.A.DB),
51-
OrgMemberRepo: organisation_members.New(h.A.Logger, h.A.DB),
52-
Queue: h.A.Queue,
53-
JWT: jwt.NewJwt(&config.Auth.Jwt, h.A.Cache),
54-
ConfigRepo: h.A.ConfigRepo,
55-
Licenser: h.A.Licenser,
56-
Logger: h.A.Logger,
57-
58-
BaseURL: baseUrl,
59-
Data: &newUser,
60-
}
48+
rs := services.NewRegisterUserService(
49+
users.New(h.A.Logger, h.A.DB),
50+
organisations.New(h.A.Logger, h.A.DB),
51+
organisation_members.New(h.A.Logger, h.A.DB),
52+
h.A.Queue,
53+
jwt.NewJwt(&config.Auth.Jwt, h.A.Cache),
54+
h.A.ConfigRepo,
55+
h.A.Licenser,
56+
baseUrl,
57+
&newUser,
58+
h.A.Logger,
59+
)
6160

6261
user, token, err := rs.Run(r.Context())
6362
if err != nil {

cmd/bootstrap/bootstrap.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,15 @@ func AddBootstrapCommand(a *cli.App) *cobra.Command {
8282
return err
8383
}
8484

85-
co := services.CreateOrganisationService{
86-
OrgRepo: organisations.New(a.Logger, a.DB),
87-
OrgMemberRepo: organisation_members.New(a.Logger, a.DB),
88-
Licenser: a.Licenser,
89-
Logger: a.Logger,
90-
NewOrg: &datastore.OrganisationRequest{Name: "Default Organisation"},
91-
User: user,
92-
}
85+
co := services.NewCreateOrganisationService(
86+
organisations.New(a.Logger, a.DB),
87+
organisation_members.New(a.Logger, a.DB),
88+
&datastore.OrganisationRequest{Name: "Default Organisation"},
89+
user,
90+
a.Licenser,
91+
"",
92+
a.Logger,
93+
)
9394

9495
_, err = co.Run(context.Background())
9596
if err != nil {

docs/docs.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Package docs Code generated by swaggo/swag at 2026-07-07 08:12:26.471862 +0100 WAT m=+3.935712293. DO NOT EDIT
1+
// Package docs Code generated by swaggo/swag at 2026-07-07 08:54:44.860299 +0100 WAT m=+2.321750918. DO NOT EDIT
22
package docs
33

44
import "github.com/swaggo/swag"

0 commit comments

Comments
 (0)