@@ -18,6 +18,7 @@ import (
1818 user "github.com/warrant-dev/warrant/pkg/authz/user"
1919 warrant "github.com/warrant-dev/warrant/pkg/authz/warrant"
2020 "github.com/warrant-dev/warrant/pkg/config"
21+ wntContext "github.com/warrant-dev/warrant/pkg/context"
2122 "github.com/warrant-dev/warrant/pkg/database"
2223 "github.com/warrant-dev/warrant/pkg/event"
2324 "github.com/warrant-dev/warrant/pkg/service"
@@ -141,23 +142,114 @@ func main() {
141142 log .Fatal ().Err (err ).Msg ("Could not initialize and connect to the configured eventstore. Shutting down." )
142143 }
143144
145+ // Init event repo and service
146+ eventRepository , err := event .NewRepository (svcEnv .EventDB ())
147+ if err != nil {
148+ log .Fatal ().Err (err ).Msg ("Could not initialize EventRepository" )
149+ }
150+
151+ eventSvc := event .NewService (svcEnv , eventRepository )
152+
153+ // Init object type repo and service
154+ objectTypeRepository , err := objecttype .NewRepository (svcEnv .DB ())
155+ if err != nil {
156+ log .Fatal ().Err (err ).Msg ("Could not initialize ObjectTypeRepository" )
157+ }
158+
159+ objectTypeSvc := objecttype .NewService (svcEnv , objectTypeRepository , eventSvc )
160+
161+ // Init context repo and service
162+ ctxRepository , err := wntContext .NewRepository (svcEnv .DB ())
163+ if err != nil {
164+ log .Fatal ().Err (err ).Msg ("Could not initialize ContextRepository" )
165+ }
166+
167+ ctxSvc := wntContext .NewService (svcEnv , ctxRepository )
168+
169+ // Init warrant repo and service
170+ warrantRepository , err := warrant .NewRepository (svcEnv .DB ())
171+ if err != nil {
172+ log .Fatal ().Err (err ).Msg ("Could not initialize WarrantRepository" )
173+ }
174+
175+ warrantSvc := warrant .NewService (svcEnv , warrantRepository , eventSvc , objectTypeSvc , ctxSvc )
176+
177+ // Init check service
178+ checkSvc := check .NewService (svcEnv , warrantRepository , ctxSvc , eventSvc , objectTypeSvc )
179+
180+ // Init object repo and service
181+ objectRepository , err := object .NewRepository (svcEnv .DB ())
182+ if err != nil {
183+ log .Fatal ().Err (err ).Msg ("Could not initialize ObjectRepository" )
184+ }
185+
186+ objectSvc := object .NewService (svcEnv , objectRepository , eventSvc , warrantSvc )
187+
188+ // Init feature repo and service
189+ featureRepository , err := feature .NewRepository (svcEnv .DB ())
190+ if err != nil {
191+ log .Fatal ().Err (err ).Msg ("Could not initialize FeatureRepository" )
192+ }
193+
194+ featureSvc := feature .NewService (& svcEnv , featureRepository , eventSvc , objectSvc )
195+
196+ // Init permission repo and service
197+ permissionRepository , err := permission .NewRepository (svcEnv .DB ())
198+ if err != nil {
199+ log .Fatal ().Err (err ).Msg ("Could not initialize RoleRepository" )
200+ }
201+
202+ permissionSvc := permission .NewService (& svcEnv , permissionRepository , eventSvc , objectSvc )
203+
204+ // Init pricing tier repo and service
205+ pricingTierRepository , err := pricingtier .NewRepository (svcEnv .DB ())
206+ if err != nil {
207+ log .Fatal ().Err (err ).Msg ("Could not initialize PricingTierRepository" )
208+ }
209+
210+ pricingTierSvc := pricingtier .NewService (& svcEnv , pricingTierRepository , eventSvc , objectSvc )
211+
212+ // Init role repo and service
213+ roleRepository , err := role .NewRepository (svcEnv .DB ())
214+ if err != nil {
215+ log .Fatal ().Err (err ).Msg ("Could not initialize RoleRepository" )
216+ }
217+
218+ roleSvc := role .NewService (& svcEnv , roleRepository , eventSvc , objectSvc )
219+
220+ // Init tenant repo and service
221+ tenantRepository , err := tenant .NewRepository (svcEnv .DB ())
222+ if err != nil {
223+ log .Fatal ().Err (err ).Msg ("Could not initialize TenantRepository" )
224+ }
225+
226+ tenantSvc := tenant .NewService (& svcEnv , tenantRepository , eventSvc , objectSvc )
227+
228+ // Init user repo and service
229+ userRepository , err := user .NewRepository (svcEnv .DB ())
230+ if err != nil {
231+ log .Fatal ().Err (err ).Msg ("Could not initialize UserRepository" )
232+ }
233+
234+ userSvc := user .NewService (& svcEnv , userRepository , eventSvc , objectSvc )
235+
144236 svcs := []service.Service {
145- check . NewService ( & svcEnv , & service. AuthInfo {}) ,
146- event . NewService ( & svcEnv ) ,
147- feature . NewService ( & svcEnv ) ,
148- object . NewService ( & svcEnv ) ,
149- objecttype . NewService ( & svcEnv ) ,
150- permission . NewService ( & svcEnv ) ,
151- pricingtier . NewService ( & svcEnv ) ,
152- role . NewService ( & svcEnv ) ,
153- tenant . NewService ( & svcEnv ) ,
154- user . NewService ( & svcEnv ) ,
155- warrant . NewService ( & svcEnv ) ,
237+ checkSvc ,
238+ eventSvc ,
239+ featureSvc ,
240+ objectSvc ,
241+ objectTypeSvc ,
242+ permissionSvc ,
243+ pricingTierSvc ,
244+ roleSvc ,
245+ tenantSvc ,
246+ userSvc ,
247+ warrantSvc ,
156248 }
157249
158250 routes := make ([]service.Route , 0 )
159251 for _ , svc := range svcs {
160- routes = append (routes , svc .GetRoutes ()... )
252+ routes = append (routes , svc .Routes ()... )
161253 }
162254
163255 log .Debug ().Msgf ("Listening on port %d" , config .Port )
0 commit comments