@@ -4,24 +4,29 @@ import (
44 blogPost "github.com/hammer-code/lms-be/app/blog_post"
55 "github.com/hammer-code/lms-be/app/middlewares"
66 newsletters "github.com/hammer-code/lms-be/app/newsletters"
7+ transactionEvent "github.com/hammer-code/lms-be/app/transaction_events/delivery/http"
8+ transactionEventRepo "github.com/hammer-code/lms-be/app/transaction_events/repository"
9+ transactionEventUC "github.com/hammer-code/lms-be/app/transaction_events/usecase"
710 users "github.com/hammer-code/lms-be/app/users"
811 "github.com/hammer-code/lms-be/config"
912 "github.com/hammer-code/lms-be/domain"
1013 pkgDB "github.com/hammer-code/lms-be/pkg/db"
1114 "github.com/hammer-code/lms-be/pkg/jwt"
15+ "github.com/hammer-code/lms-be/pkg/xendit"
1216 "gorm.io/driver/postgres"
1317
1418 events "github.com/hammer-code/lms-be/app/events"
1519 images "github.com/hammer-code/lms-be/app/images"
1620)
1721
1822type App struct {
19- Middleware domain.Middleware
20- UserHandler domain.UserHandler
21- NewLetterHandler domain.NewslettterHandler
22- EventHandler domain.EventHandler
23- ImageHandler domain.ImageHandler
24- BlogPostHandler domain.BlogPostHandler
23+ Middleware domain.Middleware
24+ UserHandler domain.UserHandler
25+ NewLetterHandler domain.NewslettterHandler
26+ EventHandler domain.EventHandler
27+ ImageHandler domain.ImageHandler
28+ BlogPostHandler domain.BlogPostHandler
29+ TransactionEventHandler domain.TransactionEventHandler
2530}
2631
2732func InitApp (
@@ -36,12 +41,16 @@ func InitApp(
3641 dbTx := pkgDB .NewDBTransaction (db )
3742 jwtInstance := jwt .NewJwt (cfg .JWT_SECRET_KEY )
3843
44+ // Xendit client
45+ xenditClient := xendit .NewClient (cfg .XENDIT_API_KEY )
46+
3947 // repository
4048 userRepo := users .InitRepository (dbTx )
4149 newsletterRepo := newsletters .InitRepository (dbTx )
4250 eventRepo := events .InitRepository (dbTx )
4351 imgRepo := images .InitRepository (dbTx )
4452 blogPostRepo := blogPost .InitRepository (dbTx )
53+ transactionEventRepository := transactionEventRepo .NewRepository (db )
4554
4655 // Middlewares
4756 middleware := middlewares .InitMiddleware (jwtInstance , userRepo )
@@ -52,20 +61,23 @@ func InitApp(
5261 eventUC := events .InitUsecase (cfg , eventRepo , imgRepo , dbTx )
5362 imgUc := images .InitUsecase (imgRepo , dbTx )
5463 blogPostUc := blogPost .InitUseCase (blogPostRepo , jwtInstance )
64+ transactionEventUsecase := transactionEventUC .NewUsecase (transactionEventRepository , eventRepo , xenditClient , cfg )
5565
5666 // handler
5767 userHandler := users .InitHandler (userUsecase )
5868 newsletterHandler := newsletters .InitHandler (newsletterUC , middleware )
5969 eventHandler := events .InitHandler (eventUC )
6070 ImageHandler := images .InitHandler (imgUc )
6171 blogPostHandler := blogPost .InitHandler (blogPostUc )
72+ transactionEventHandler := transactionEvent .NewHandler (transactionEventUsecase , cfg )
6273
6374 return App {
64- UserHandler : userHandler ,
65- NewLetterHandler : newsletterHandler ,
66- Middleware : middleware ,
67- EventHandler : eventHandler ,
68- ImageHandler : ImageHandler ,
69- BlogPostHandler : blogPostHandler ,
75+ UserHandler : userHandler ,
76+ NewLetterHandler : newsletterHandler ,
77+ Middleware : middleware ,
78+ EventHandler : eventHandler ,
79+ ImageHandler : ImageHandler ,
80+ BlogPostHandler : blogPostHandler ,
81+ TransactionEventHandler : transactionEventHandler ,
7082 }
7183}
0 commit comments