From d53ecb8e038a9782256a0468c9d6c805f58610a6 Mon Sep 17 00:00:00 2001 From: hikahana <22.h.hanada.nutfes@gmail.com> Date: Wed, 16 Jul 2025 11:14:31 +0900 Subject: [PATCH 01/12] =?UTF-8?q?feat:=20google=20wire=E5=B0=8E=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/go.mod | 5 ++++- api/go.sum | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/api/go.mod b/api/go.mod index f51e9c27d..fb2734779 100644 --- a/api/go.mod +++ b/api/go.mod @@ -45,7 +45,10 @@ require ( golang.org/x/time v0.7.0 // indirect ) -require github.com/go-testfixtures/testfixtures/v3 v3.14.0 +require ( + github.com/go-testfixtures/testfixtures/v3 v3.14.0 + github.com/google/wire v0.6.0 +) require ( cel.dev/expr v0.16.0 // indirect diff --git a/api/go.sum b/api/go.sum index 65cde78ce..6408caec1 100644 --- a/api/go.sum +++ b/api/go.sum @@ -835,10 +835,13 @@ github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLe github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= +github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/wire v0.6.0 h1:HBkoIh4BdSxoyo9PveV8giw7ZsaBOvzWKfcg/6MrVwI= +github.com/google/wire v0.6.0/go.mod h1:F4QhpQ9EDIdJ1Mbop/NZBRB+5yrR6qg3BnctaoUk6NA= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= @@ -1060,6 +1063,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1119,6 +1124,8 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1176,6 +1183,9 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1225,6 +1235,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1304,6 +1316,9 @@ golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1314,6 +1329,9 @@ golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1330,6 +1348,8 @@ golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1401,6 +1421,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From d17a78a87dd9c5ebfe6cc0c89fcbd90f5672528e Mon Sep 17 00:00:00 2001 From: hikahana <22.h.hanada.nutfes@gmail.com> Date: Wed, 16 Jul 2025 12:10:53 +0900 Subject: [PATCH 02/12] =?UTF-8?q?del:=20di.go=E3=81=AE=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/internals/di/di.go | 179 ----------------------------------------- 1 file changed, 179 deletions(-) delete mode 100644 api/internals/di/di.go diff --git a/api/internals/di/di.go b/api/internals/di/di.go deleted file mode 100644 index 3d8708398..000000000 --- a/api/internals/di/di.go +++ /dev/null @@ -1,179 +0,0 @@ -package di - -import ( - "fmt" - "log" - - "github.com/NUTFes/FinanSu/api/drivers/db" - "github.com/NUTFes/FinanSu/api/drivers/mc" - "github.com/NUTFes/FinanSu/api/drivers/server" - "github.com/NUTFes/FinanSu/api/externals/controller" - "github.com/NUTFes/FinanSu/api/externals/repository" - "github.com/NUTFes/FinanSu/api/externals/repository/abstract" - "github.com/NUTFes/FinanSu/api/internals/usecase" - "github.com/NUTFes/FinanSu/api/router" - "github.com/labstack/echo/v4" -) - -func InitializeServer() (db.Client, *echo.Echo) { - // DB接続 - client, err := db.ConnectMySQL() - if err != nil { - log.Fatal("db error") - } - - crud := abstract.NewCrud(client) - - minioClient, err := mc.InitMinioClient() - if err != nil { - fmt.Println(err) - } - - fmt.Println(minioClient) - - // Repository - activityRepository := repository.NewActivityRepository(client, crud) - activityInformationRepository := repository.NewActivityInformationsRepository(client, crud) - activityStyleRepository := repository.NewActivityStyleRepository(client, crud) - budgetRepository := repository.NewBudgetRepository(client, crud) - bureauRepository := repository.NewBureauRepository(client, crud) - buyReportRepository := repository.NewBuyReportRepository(client, crud) - departmentRepository := repository.NewDepartmentRepository(client, crud) - divisionRepository := repository.NewDivisionRepository(client, crud) - expenseRepository := repository.NewExpenseRepository(client, crud) - festivalItemRepository := repository.NewFestivalItemRepository(client, crud) - financialRecordRepository := repository.NewFinancialRecordRepository(client, crud) - fundInformationRepository := repository.NewFundInformationRepository(client, crud) - incomeRepository := repository.NewIncomeRepository(client, crud) - incomeExpenditureManagementRepository := repository.NewIncomeExpenditureManagementRepository(client, crud) - mailAuthRepository := repository.NewMailAuthRepository(client, crud) - objectHandleRepository := repository.NewObjectHandleRepository(minioClient) - passwordResetTokenRepository := repository.NewPasswordResetTokenRepository(client, crud) - purchaseItemRepository := repository.NewPurchaseItemRepository(client, crud) - purchaseOrderRepository := repository.NewPurchaseOrderRepository(client, crud) - purchaseReportRepository := repository.NewPurchaseReportRepository(client, crud) - receiptRepository := repository.NewReceiptRepository(client, crud) - sessionRepository := repository.NewSessionRepository(client) - sourceRepository := repository.NewSourceRepository(client, crud) - sponsorRepository := repository.NewSponsorRepository(client, crud) - sponsorStyleRepository := repository.NewSponsorStyleRepository(client, crud) - teacherRepository := repository.NewTeacherRepository(client, crud) - transactionRepository := repository.NewTransactionRepository(client, crud) - userRepository := repository.NewUserRepository(client, crud) - yearRepository := repository.NewYearRepository(client, crud) - // ↓ - - // UseCase - activityUseCase := usecase.NewActivityUseCase(activityRepository) - activityInformationUseCase := usecase.NewActivityInformationUseCase( - activityInformationRepository, - ) - activityStyleUseCase := usecase.NewActivityStyleUseCase(activityStyleRepository) - budgetUseCase := usecase.NewBudgetUseCase(budgetRepository) - bureauUseCase := usecase.NewBureauUseCase(bureauRepository) - buyReportUseCase := usecase.NewBuyReportUseCase(buyReportRepository, transactionRepository, objectHandleRepository, incomeExpenditureManagementRepository) - departmentUseCase := usecase.NewDepartmentUseCase(departmentRepository) - divisionUseCase := usecase.NewDivisionUseCase(divisionRepository) - expenseUseCase := usecase.NewExpenseUseCase(expenseRepository) - festivalUseCase := usecase.NewFestivalItemUseCase(festivalItemRepository, transactionRepository) - financialRecordUseCase := usecase.NewFinancialRecordUseCase(financialRecordRepository) - fundInformationUseCase := usecase.NewFundInformationUseCase(fundInformationRepository) - incomeUseCase := usecase.NewIncomeUseCase(incomeRepository, incomeExpenditureManagementRepository, transactionRepository) - incomeExpenditureManagementUseCase := usecase.NewIncomeExpenditureManagementUseCase(incomeExpenditureManagementRepository) - mailAuthUseCase := usecase.NewMailAuthUseCase(mailAuthRepository, sessionRepository) - objectHandleUseCase := usecase.NewObjectUploadUseCase(objectHandleRepository) - passwordResetTokenUseCase := usecase.NewPasswordResetTokenUseCase( - passwordResetTokenRepository, - userRepository, - mailAuthRepository, - ) - purchaseItemUseCase := usecase.NewPurchaseItemUseCase(purchaseItemRepository) - purchaseOrderUseCase := usecase.NewPurchaseOrderUseCase( - purchaseOrderRepository, - bureauRepository, - expenseRepository, - ) - purchaseReportUseCase := usecase.NewPurchaseReportUseCase(purchaseReportRepository) - receiptUseCase := usecase.NewReceiptUseCase(receiptRepository) - sourceUseCase := usecase.NewSourceUseCase(sourceRepository) - sponsorUseCase := usecase.NewSponsorUseCase(sponsorRepository) - sponsorStyleUseCase := usecase.NewSponsorStyleUseCase(sponsorStyleRepository) - teacherUseCase := usecase.NewTeacherUseCase(teacherRepository) - userUseCase := usecase.NewUserUseCase(userRepository, sessionRepository) - yearUseCase := usecase.NewYearUseCase(yearRepository) - // ↓ - - // Controller - activityController := controller.NewActivityController(activityUseCase) - activityInformationController := controller.NewActivityInformationController( - activityInformationUseCase, - ) - activityStyleController := controller.NewActivityStyleController(activityStyleUseCase) - budgetController := controller.NewBudgetController(budgetUseCase) - bureauController := controller.NewBureauController(bureauUseCase) - buyReportContoroller := controller.NewBuyReportController(buyReportUseCase) - departmentController := controller.NewDepartmentController(departmentUseCase) - divisionController := controller.NewDivisionController(divisionUseCase) - expenseController := controller.NewExpenseController(expenseUseCase) - festivalItemController := controller.NewFestivalItemController(festivalUseCase) - financialRecordController := controller.NewFinancialRecordController(financialRecordUseCase) - fundInformationController := controller.NewFundInformationController(fundInformationUseCase) - healthcheckController := controller.NewHealthCheckController() - incomeController := controller.NewIncomeController(incomeUseCase) - incomeExpenditureManagementController := controller.NewIncomeExpenditureManagementController(incomeExpenditureManagementUseCase) - mailAuthController := controller.NewMailAuthController(mailAuthUseCase) - objectUploadController := controller.NewObjectUploadController(objectHandleUseCase) - passwordResetTokenController := controller.NewPasswordResetTokenController( - passwordResetTokenUseCase, - ) - purchaseItemController := controller.NewPurchaseItemController(purchaseItemUseCase) - purchaseOrderController := controller.NewPurchaseOrderController(purchaseOrderUseCase) - purchaseReportController := controller.NewPurchaseReportController(purchaseReportUseCase) - receiptController := controller.NewReceiptController(receiptUseCase) - sourceController := controller.NewSourceController(sourceUseCase) - sponsorController := controller.NewSponsorController(sponsorUseCase) - sponsorStyleController := controller.NewSponsorStyleController(sponsorStyleUseCase) - teacherController := controller.NewTeacherController(teacherUseCase) - userController := controller.NewUserController(userUseCase) - yearController := controller.NewYearController(yearUseCase) - // ↓ - - // router - router := router.NewRouter( - activityController, - activityInformationController, - activityStyleController, - budgetController, - bureauController, - buyReportContoroller, - departmentController, - divisionController, - expenseController, - festivalItemController, - financialRecordController, - fundInformationController, - healthcheckController, - incomeController, - incomeExpenditureManagementController, - mailAuthController, - objectUploadController, - passwordResetTokenController, - purchaseItemController, - purchaseOrderController, - purchaseReportController, - receiptController, - sourceController, - sponsorController, - sponsorStyleController, - teacherController, - userController, - yearController, - ) - - // ↓ - - // Server - e := server.RunServer(router) - - return client, e -} From c08213732de4bc10f3fe0ced0aa87807a681d41c Mon Sep 17 00:00:00 2001 From: hikahana <22.h.hanada.nutfes@gmail.com> Date: Wed, 16 Jul 2025 12:11:29 +0900 Subject: [PATCH 03/12] =?UTF-8?q?feat:=20=E6=9B=B8=E3=81=8F=E3=83=AC?= =?UTF-8?q?=E3=82=A4=E3=83=A4=E3=83=BC=E3=81=AEwire=E3=82=BB=E3=83=83?= =?UTF-8?q?=E3=83=88=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AE=E4=BD=9C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/externals/controller/wire.go | 40 +++++++++ api/externals/repository/wire.go | 41 +++++++++ api/internals/di/wire.go | 137 +++++++++++++++++++++++++++++++ api/internals/usecase/wire.go | 39 +++++++++ 4 files changed, 257 insertions(+) create mode 100644 api/externals/controller/wire.go create mode 100644 api/externals/repository/wire.go create mode 100644 api/internals/di/wire.go create mode 100644 api/internals/usecase/wire.go diff --git a/api/externals/controller/wire.go b/api/externals/controller/wire.go new file mode 100644 index 000000000..7ebc3c521 --- /dev/null +++ b/api/externals/controller/wire.go @@ -0,0 +1,40 @@ +//go:build wireinject +// +build wireinject + +package controller + +import ( + "github.com/google/wire" +) + +// ControllerProviderSet - Controller層のProviderセット +var ControllerProviderSet = wire.NewSet( + NewActivityController, + NewActivityInformationController, + NewActivityStyleController, + NewBudgetController, + NewBureauController, + NewBuyReportController, + NewDepartmentController, + NewDivisionController, + NewExpenseController, + NewFestivalItemController, + NewFinancialRecordController, + NewFundInformationController, + NewHealthCheckController, + NewIncomeController, + NewIncomeExpenditureManagementController, + NewMailAuthController, + NewObjectUploadController, + NewPasswordResetTokenController, + NewPurchaseItemController, + NewPurchaseOrderController, + NewPurchaseReportController, + NewReceiptController, + NewSourceController, + NewSponsorController, + NewSponsorStyleController, + NewTeacherController, + NewUserController, + NewYearController, +) diff --git a/api/externals/repository/wire.go b/api/externals/repository/wire.go new file mode 100644 index 000000000..5709e3807 --- /dev/null +++ b/api/externals/repository/wire.go @@ -0,0 +1,41 @@ +//go:build wireinject +// +build wireinject + +package repository + +import ( + "github.com/google/wire" +) + +// RepositoryProviderSet - Repository層のProviderセット +var RepositoryProviderSet = wire.NewSet( + NewActivityRepository, + NewActivityInformationsRepository, + NewActivityStyleRepository, + NewBudgetRepository, + NewBureauRepository, + NewBuyReportRepository, + NewDepartmentRepository, + NewDivisionRepository, + NewExpenseRepository, + NewFestivalItemRepository, + NewFinancialRecordRepository, + NewFundInformationRepository, + NewIncomeRepository, + NewIncomeExpenditureManagementRepository, + NewMailAuthRepository, + NewObjectHandleRepository, + NewPasswordResetTokenRepository, + NewPurchaseItemRepository, + NewPurchaseOrderRepository, + NewPurchaseReportRepository, + NewReceiptRepository, + NewSessionRepository, + NewSourceRepository, + NewSponsorRepository, + NewSponsorStyleRepository, + NewTeacherRepository, + NewTransactionRepository, + NewUserRepository, + NewYearRepository, +) diff --git a/api/internals/di/wire.go b/api/internals/di/wire.go new file mode 100644 index 000000000..37b855e6c --- /dev/null +++ b/api/internals/di/wire.go @@ -0,0 +1,137 @@ +//go:build wireinject +// +build wireinject + +package di + +import ( + "github.com/NUTFes/FinanSu/api/drivers/db" + "github.com/NUTFes/FinanSu/api/drivers/mc" + "github.com/NUTFes/FinanSu/api/drivers/server" + "github.com/NUTFes/FinanSu/api/externals/controller" + "github.com/NUTFes/FinanSu/api/externals/repository" + "github.com/NUTFes/FinanSu/api/externals/repository/abstract" + "github.com/NUTFes/FinanSu/api/internals/usecase" + "github.com/NUTFes/FinanSu/api/router" + "github.com/google/wire" + "github.com/labstack/echo/v4" +) + +// ServerComponents はサーバーコンポーネントをまとめる構造体 +type ServerComponents struct { + Client db.Client + Echo *echo.Echo +} + +// 基盤Provider群 + +// ProvideDBClient - DB接続のProvider +func ProvideDBClient() (db.Client, error) { + return db.ConnectMySQL() +} + +// ProvideMinioClient - MinioClientのProvider +func ProvideMinioClient() (mc.Client, error) { + return mc.InitMinioClient() +} + +// ProvideCrud - AbstractCrudのProvider +func ProvideCrud(client db.Client) abstract.Crud { + return abstract.NewCrud(client) +} + +// ProvideRouter - Router構築のProvider +func ProvideRouter( + activityController controller.ActivityController, + activityInformationController controller.ActivityInformationController, + activityStyleController controller.ActivityStyleController, + budgetController controller.BudgetController, + bureauController controller.BureauController, + buyReportController controller.BuyReportController, + departmentController controller.DepartmentController, + divisionController controller.DivisionController, + expenseController controller.ExpenseController, + festivalItemController controller.FestivalItemController, + financialRecordController controller.FinancialRecordController, + fundInformationController controller.FundInformationController, + healthcheckController controller.HealthcheckController, + incomeController controller.IncomeController, + incomeExpenditureManagementController controller.IncomeExpenditureManagementController, + mailAuthController controller.MailAuthController, + objectUploadController controller.ObjectUploadController, + passwordResetTokenController controller.PasswordResetTokenController, + purchaseItemController controller.PurchaseItemController, + purchaseOrderController controller.PurchaseOrderController, + purchaseReportController controller.PurchaseReportController, + receiptController controller.ReceiptController, + sourceController controller.SourceController, + sponsorController controller.SponsorController, + sponsorStyleController controller.SponsorStyleController, + teacherController controller.TeacherController, + userController controller.UserController, + yearController controller.YearController, +) router.Router { + return router.NewRouter( + activityController, + activityInformationController, + activityStyleController, + budgetController, + bureauController, + buyReportController, + departmentController, + divisionController, + expenseController, + festivalItemController, + financialRecordController, + fundInformationController, + healthcheckController, + incomeController, + incomeExpenditureManagementController, + mailAuthController, + objectUploadController, + passwordResetTokenController, + purchaseItemController, + purchaseOrderController, + purchaseReportController, + receiptController, + sourceController, + sponsorController, + sponsorStyleController, + teacherController, + userController, + yearController, + ) +} + +// ProvideServer - ServerのProvider +func ProvideServer(router router.Router) *echo.Echo { + return server.RunServer(router) +} + +// ProvideServerComponents - ServerComponentsのProvider +func ProvideServerComponents(client db.Client, echo *echo.Echo) *ServerComponents { + return &ServerComponents{ + Client: client, + Echo: echo, + } +} + +// InitializeServer - Wireで生成される関数 +func InitializeServer() (*ServerComponents, error) { + wire.Build( + // 基盤Provider群 + ProvideDBClient, + ProvideMinioClient, + ProvideCrud, + + // 各層のProviderセット + repository.RepositoryProviderSet, + usecase.UseCaseProviderSet, + controller.ControllerProviderSet, + + // Router/Server + ProvideRouter, + ProvideServer, + ProvideServerComponents, + ) + return nil, nil +} diff --git a/api/internals/usecase/wire.go b/api/internals/usecase/wire.go new file mode 100644 index 000000000..bded17c6e --- /dev/null +++ b/api/internals/usecase/wire.go @@ -0,0 +1,39 @@ +//go:build wireinject +// +build wireinject + +package usecase + +import ( + "github.com/google/wire" +) + +// UseCaseProviderSet - UseCase層のProviderセット +var UseCaseProviderSet = wire.NewSet( + NewActivityUseCase, + NewActivityInformationUseCase, + NewActivityStyleUseCase, + NewBudgetUseCase, + NewBureauUseCase, + NewBuyReportUseCase, + NewDepartmentUseCase, + NewDivisionUseCase, + NewExpenseUseCase, + NewFestivalItemUseCase, + NewFinancialRecordUseCase, + NewFundInformationUseCase, + NewIncomeUseCase, + NewIncomeExpenditureManagementUseCase, + NewMailAuthUseCase, + NewObjectUploadUseCase, + NewPasswordResetTokenUseCase, + NewPurchaseItemUseCase, + NewPurchaseOrderUseCase, + NewPurchaseReportUseCase, + NewReceiptUseCase, + NewSourceUseCase, + NewSponsorUseCase, + NewSponsorStyleUseCase, + NewTeacherUseCase, + NewUserUseCase, + NewYearUseCase, +) From 1fe525f9849b92b31d831c2a6d5fbcbf7faf62cb Mon Sep 17 00:00:00 2001 From: hikahana <22.h.hanada.nutfes@gmail.com> Date: Wed, 16 Jul 2025 12:11:39 +0900 Subject: [PATCH 04/12] generated: wire_gen --- api/internals/di/wire_gen.go | 221 +++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 api/internals/di/wire_gen.go diff --git a/api/internals/di/wire_gen.go b/api/internals/di/wire_gen.go new file mode 100644 index 000000000..ec4dd9ea0 --- /dev/null +++ b/api/internals/di/wire_gen.go @@ -0,0 +1,221 @@ +// Code generated by Wire. DO NOT EDIT. + +//go:generate go run -mod=mod github.com/google/wire/cmd/wire +//go:build !wireinject +// +build !wireinject + +package di + +import ( + "github.com/NUTFes/FinanSu/api/drivers/db" + "github.com/NUTFes/FinanSu/api/drivers/mc" + "github.com/NUTFes/FinanSu/api/drivers/server" + "github.com/NUTFes/FinanSu/api/externals/controller" + "github.com/NUTFes/FinanSu/api/externals/repository" + "github.com/NUTFes/FinanSu/api/externals/repository/abstract" + "github.com/NUTFes/FinanSu/api/internals/usecase" + "github.com/NUTFes/FinanSu/api/router" + "github.com/labstack/echo/v4" +) + +// Injectors from wire.go: + +// InitializeServer - Wireで生成される関数 +func InitializeServer() (*ServerComponents, error) { + client, err := ProvideDBClient() + if err != nil { + return nil, err + } + crud := ProvideCrud(client) + activityRepository := repository.NewActivityRepository(client, crud) + activityUseCase := usecase.NewActivityUseCase(activityRepository) + activityController := controller.NewActivityController(activityUseCase) + activityInformationRepository := repository.NewActivityInformationsRepository(client, crud) + activityInformationUseCase := usecase.NewActivityInformationUseCase(activityInformationRepository) + activityInformationController := controller.NewActivityInformationController(activityInformationUseCase) + activityStyleRepository := repository.NewActivityStyleRepository(client, crud) + activityStyleUseCase := usecase.NewActivityStyleUseCase(activityStyleRepository) + activityStyleController := controller.NewActivityStyleController(activityStyleUseCase) + budgetRepository := repository.NewBudgetRepository(client, crud) + budgetUseCase := usecase.NewBudgetUseCase(budgetRepository) + budgetController := controller.NewBudgetController(budgetUseCase) + bureauRepository := repository.NewBureauRepository(client, crud) + bureauUseCase := usecase.NewBureauUseCase(bureauRepository) + bureauController := controller.NewBureauController(bureauUseCase) + buyReportRepository := repository.NewBuyReportRepository(client, crud) + transactionRepository := repository.NewTransactionRepository(client, crud) + mcClient, err := ProvideMinioClient() + if err != nil { + return nil, err + } + objectHandleRepository := repository.NewObjectHandleRepository(mcClient) + incomeExpenditureManagementRepository := repository.NewIncomeExpenditureManagementRepository(client, crud) + buyReportUseCase := usecase.NewBuyReportUseCase(buyReportRepository, transactionRepository, objectHandleRepository, incomeExpenditureManagementRepository) + buyReportController := controller.NewBuyReportController(buyReportUseCase) + departmentRepository := repository.NewDepartmentRepository(client, crud) + departmentUseCase := usecase.NewDepartmentUseCase(departmentRepository) + departmentController := controller.NewDepartmentController(departmentUseCase) + divisionRepository := repository.NewDivisionRepository(client, crud) + divisionUseCase := usecase.NewDivisionUseCase(divisionRepository) + divisionController := controller.NewDivisionController(divisionUseCase) + expenseRepository := repository.NewExpenseRepository(client, crud) + expenseUseCase := usecase.NewExpenseUseCase(expenseRepository) + expenseController := controller.NewExpenseController(expenseUseCase) + festivalItemRepository := repository.NewFestivalItemRepository(client, crud) + festivalItemUseCase := usecase.NewFestivalItemUseCase(festivalItemRepository, transactionRepository) + festivalItemController := controller.NewFestivalItemController(festivalItemUseCase) + financialRecordRepository := repository.NewFinancialRecordRepository(client, crud) + financialRecordUseCase := usecase.NewFinancialRecordUseCase(financialRecordRepository) + financialRecordController := controller.NewFinancialRecordController(financialRecordUseCase) + fundInformationRepository := repository.NewFundInformationRepository(client, crud) + fundInformationUseCase := usecase.NewFundInformationUseCase(fundInformationRepository) + fundInformationController := controller.NewFundInformationController(fundInformationUseCase) + healthcheckController := controller.NewHealthCheckController() + incomeRepository := repository.NewIncomeRepository(client, crud) + incomeUseCase := usecase.NewIncomeUseCase(incomeRepository, incomeExpenditureManagementRepository, transactionRepository) + incomeController := controller.NewIncomeController(incomeUseCase) + incomeExpenditureManagementUseCase := usecase.NewIncomeExpenditureManagementUseCase(incomeExpenditureManagementRepository) + incomeExpenditureManagementController := controller.NewIncomeExpenditureManagementController(incomeExpenditureManagementUseCase) + mailAuthRepository := repository.NewMailAuthRepository(client, crud) + sessionRepository := repository.NewSessionRepository(client) + mailAuthUseCase := usecase.NewMailAuthUseCase(mailAuthRepository, sessionRepository) + mailAuthController := controller.NewMailAuthController(mailAuthUseCase) + objectUploadUseCase := usecase.NewObjectUploadUseCase(objectHandleRepository) + objectUploadController := controller.NewObjectUploadController(objectUploadUseCase) + passwordResetTokenRepository := repository.NewPasswordResetTokenRepository(client, crud) + userRepository := repository.NewUserRepository(client, crud) + passwordResetTokenUseCase := usecase.NewPasswordResetTokenUseCase(passwordResetTokenRepository, userRepository, mailAuthRepository) + passwordResetTokenController := controller.NewPasswordResetTokenController(passwordResetTokenUseCase) + purchaseItemRepository := repository.NewPurchaseItemRepository(client, crud) + purchaseItemUseCase := usecase.NewPurchaseItemUseCase(purchaseItemRepository) + purchaseItemController := controller.NewPurchaseItemController(purchaseItemUseCase) + purchaseOrderRepository := repository.NewPurchaseOrderRepository(client, crud) + purchaseOrderUseCase := usecase.NewPurchaseOrderUseCase(purchaseOrderRepository, bureauRepository, expenseRepository) + purchaseOrderController := controller.NewPurchaseOrderController(purchaseOrderUseCase) + purchaseReportRepository := repository.NewPurchaseReportRepository(client, crud) + purchaseReportUseCase := usecase.NewPurchaseReportUseCase(purchaseReportRepository) + purchaseReportController := controller.NewPurchaseReportController(purchaseReportUseCase) + receiptRepository := repository.NewReceiptRepository(client, crud) + receiptUseCase := usecase.NewReceiptUseCase(receiptRepository) + receiptController := controller.NewReceiptController(receiptUseCase) + sourceRepository := repository.NewSourceRepository(client, crud) + sourceUseCase := usecase.NewSourceUseCase(sourceRepository) + sourceController := controller.NewSourceController(sourceUseCase) + sponsorRepository := repository.NewSponsorRepository(client, crud) + sponsorUseCase := usecase.NewSponsorUseCase(sponsorRepository) + sponsorController := controller.NewSponsorController(sponsorUseCase) + sponsorStyleRepository := repository.NewSponsorStyleRepository(client, crud) + sponsorStyleUseCase := usecase.NewSponsorStyleUseCase(sponsorStyleRepository) + sponsorStyleController := controller.NewSponsorStyleController(sponsorStyleUseCase) + teacherRepository := repository.NewTeacherRepository(client, crud) + teacherUseCase := usecase.NewTeacherUseCase(teacherRepository) + teacherController := controller.NewTeacherController(teacherUseCase) + userUseCase := usecase.NewUserUseCase(userRepository, sessionRepository) + userController := controller.NewUserController(userUseCase) + yearRepository := repository.NewYearRepository(client, crud) + yearUseCase := usecase.NewYearUseCase(yearRepository) + yearController := controller.NewYearController(yearUseCase) + router := ProvideRouter(activityController, activityInformationController, activityStyleController, budgetController, bureauController, buyReportController, departmentController, divisionController, expenseController, festivalItemController, financialRecordController, fundInformationController, healthcheckController, incomeController, incomeExpenditureManagementController, mailAuthController, objectUploadController, passwordResetTokenController, purchaseItemController, purchaseOrderController, purchaseReportController, receiptController, sourceController, sponsorController, sponsorStyleController, teacherController, userController, yearController) + echo := ProvideServer(router) + serverComponents := ProvideServerComponents(client, echo) + return serverComponents, nil +} + +// wire.go: + +// ServerComponents はサーバーコンポーネントをまとめる構造体 +type ServerComponents struct { + Client db.Client + Echo *echo.Echo +} + +// ProvideDBClient - DB接続のProvider +func ProvideDBClient() (db.Client, error) { + return db.ConnectMySQL() +} + +// ProvideMinioClient - MinioClientのProvider +func ProvideMinioClient() (mc.Client, error) { + return mc.InitMinioClient() +} + +// ProvideCrud - AbstractCrudのProvider +func ProvideCrud(client db.Client) abstract.Crud { + return abstract.NewCrud(client) +} + +// ProvideRouter - Router構築のProvider +func ProvideRouter( + activityController controller.ActivityController, + activityInformationController controller.ActivityInformationController, + activityStyleController controller.ActivityStyleController, + budgetController controller.BudgetController, + bureauController controller.BureauController, + buyReportController controller.BuyReportController, + departmentController controller.DepartmentController, + divisionController controller.DivisionController, + expenseController controller.ExpenseController, + festivalItemController controller.FestivalItemController, + financialRecordController controller.FinancialRecordController, + fundInformationController controller.FundInformationController, + healthcheckController controller.HealthcheckController, + incomeController controller.IncomeController, + incomeExpenditureManagementController controller.IncomeExpenditureManagementController, + mailAuthController controller.MailAuthController, + objectUploadController controller.ObjectUploadController, + passwordResetTokenController controller.PasswordResetTokenController, + purchaseItemController controller.PurchaseItemController, + purchaseOrderController controller.PurchaseOrderController, + purchaseReportController controller.PurchaseReportController, + receiptController controller.ReceiptController, + sourceController controller.SourceController, + sponsorController controller.SponsorController, + sponsorStyleController controller.SponsorStyleController, + teacherController controller.TeacherController, + userController controller.UserController, + yearController controller.YearController, +) router.Router { + return router.NewRouter( + activityController, + activityInformationController, + activityStyleController, + budgetController, + bureauController, + buyReportController, + departmentController, + divisionController, + expenseController, + festivalItemController, + financialRecordController, + fundInformationController, + healthcheckController, + incomeController, + incomeExpenditureManagementController, + mailAuthController, + objectUploadController, + passwordResetTokenController, + purchaseItemController, + purchaseOrderController, + purchaseReportController, + receiptController, + sourceController, + sponsorController, + sponsorStyleController, + teacherController, + userController, + yearController, + ) +} + +// ProvideServer - ServerのProvider +func ProvideServer(router2 router.Router) *echo.Echo { + return server.RunServer(router2) +} + +// ProvideServerComponents - ServerComponentsのProvider +func ProvideServerComponents(client db.Client, echo2 *echo.Echo) *ServerComponents { + return &ServerComponents{ + Client: client, + Echo: echo2, + } +} From 7b7d3d513a4f18449c69fdcfa50ba0ca3d1f58c8 Mon Sep 17 00:00:00 2001 From: hikahana <22.h.hanada.nutfes@gmail.com> Date: Wed, 16 Jul 2025 12:11:57 +0900 Subject: [PATCH 05/12] =?UTF-8?q?fix:=20wire=E3=82=92=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E3=81=97=E3=81=A6=E8=B5=B7=E5=8B=95=E3=81=99=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/main.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/api/main.go b/api/main.go index 32912de09..a5b46d17f 100644 --- a/api/main.go +++ b/api/main.go @@ -11,11 +11,14 @@ func main() { // JSTに設定 time.Local = time.FixedZone("JST", 9*60*60) - client, echo := di.InitializeServer() + serverComponents, err := di.InitializeServer() + if err != nil { + panic(err) + } - if err := echo.Start(":1323"); err != nil { + if err := serverComponents.Echo.Start(":1323"); err != nil { panic(err) } - defer client.CloseDB() + defer serverComponents.Client.CloseDB() } From 8e9ee4c796f68a3d209ddc3987d2e00f247f14b1 Mon Sep 17 00:00:00 2001 From: hikahana <22.h.hanada.nutfes@gmail.com> Date: Wed, 16 Jul 2025 12:12:20 +0900 Subject: [PATCH 06/12] =?UTF-8?q?fix:=20wire=20gen=E3=81=AEmake=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile b/Makefile index 49de15d6a..c256869b4 100644 --- a/Makefile +++ b/Makefile @@ -106,3 +106,7 @@ gen-er: format: docker compose run --rm view npm run format + +# Wireコードを生成 +wire-gen: + cd api/internals/di && ~/go/bin/wire gen From d66c7421c57bdf1dc4321e732537100674d637bf Mon Sep 17 00:00:00 2001 From: hikahana <22.h.hanada.nutfes@gmail.com> Date: Wed, 16 Jul 2025 13:07:07 +0900 Subject: [PATCH 07/12] =?UTF-8?q?chore:=20go.mod=E3=81=AE=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/go.mod | 3 +++ api/go.sum | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/api/go.mod b/api/go.mod index fb2734779..748822db1 100644 --- a/api/go.mod +++ b/api/go.mod @@ -74,6 +74,7 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/google/s2a-go v0.1.8 // indirect + github.com/google/subcommands v1.2.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect github.com/googleapis/gax-go/v2 v2.13.0 // indirect github.com/googleapis/go-sql-spanner v1.7.4 // indirect @@ -89,8 +90,10 @@ require ( go.opentelemetry.io/otel/sdk v1.29.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.29.0 // indirect go.opentelemetry.io/otel/trace v1.29.0 // indirect + golang.org/x/mod v0.17.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.12.0 // indirect + golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/api v0.203.0 // indirect google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 // indirect diff --git a/api/go.sum b/api/go.sum index 6408caec1..46680bc05 100644 --- a/api/go.sum +++ b/api/go.sum @@ -835,6 +835,7 @@ github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLe github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= +github.com/google/subcommands v1.2.0 h1:vWQspBTo2nEqTUFita5/KeEWlUL8kQObDFbub/EN9oE= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -1126,6 +1127,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1423,6 +1426,8 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 3fb85ec680ea84fa0b750231b43eb93e4f1a52db Mon Sep 17 00:00:00 2001 From: hikahana <22.h.hanada.nutfes@gmail.com> Date: Wed, 16 Jul 2025 13:07:29 +0900 Subject: [PATCH 08/12] =?UTF-8?q?feat:=20Go=E4=BE=9D=E5=AD=98=E9=96=A2?= =?UTF-8?q?=E4=BF=82=E3=82=92=E6=95=B4=E7=90=86=E3=81=99=E3=82=8B=E3=81=9F?= =?UTF-8?q?=E3=82=81=E3=81=AEmake=E3=82=BF=E3=82=B9=E3=82=AF=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c256869b4..063dda805 100644 --- a/Makefile +++ b/Makefile @@ -107,6 +107,10 @@ gen-er: format: docker compose run --rm view npm run format +# Go依存関係を整理 +go-mod-tidy: + docker compose run --rm api go mod tidy + # Wireコードを生成 wire-gen: - cd api/internals/di && ~/go/bin/wire gen + docker compose run --rm api sh -c "cd /app/internals/di && go run github.com/google/wire/cmd/wire gen" From bc6fd3c8b60bc2147b8fabb7fddc8ee032e46ea7 Mon Sep 17 00:00:00 2001 From: hikahana <22.h.hanada.nutfes@gmail.com> Date: Wed, 16 Jul 2025 13:12:50 +0900 Subject: [PATCH 09/12] =?UTF-8?q?fix:=20=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E7=94=A8=E3=82=B5=E3=83=BC=E3=83=90=E3=82=82wire=E3=81=A7?= =?UTF-8?q?=E8=B5=B7=E5=8B=95=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/test/sample_test.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/api/test/sample_test.go b/api/test/sample_test.go index 769fb8532..1f24ccb1e 100644 --- a/api/test/sample_test.go +++ b/api/test/sample_test.go @@ -76,9 +76,13 @@ func prepareTestDatabase(t *testing.T) { } func TestHelloHandler(t *testing.T) { - _, router := di.InitializeServer() + serverComponents, err := di.InitializeServer() + if err != nil { + t.Errorf("Error initializing server: %s", err) + return + } - testServer := httptest.NewServer(router) // サーバを立てる + testServer := httptest.NewServer(serverComponents.Echo) // サーバを立てる t.Cleanup(func() { testServer.Close() }) @@ -108,9 +112,13 @@ func TestHelloHandler(t *testing.T) { func TestGetUserHandler(t *testing.T) { prepareTestDatabase(t) - _, router := di.InitializeServer() + serverComponents, err := di.InitializeServer() + if err != nil { + t.Errorf("Error initializing server: %s", err) + return + } - testServer := httptest.NewServer(router) // サーバを立てる + testServer := httptest.NewServer(serverComponents.Echo) // サーバを立てる t.Cleanup(func() { testServer.Close() }) @@ -139,9 +147,13 @@ func TestGetUserHandler(t *testing.T) { func TestAddUserHandler(t *testing.T) { prepareTestDatabase(t) - _, router := di.InitializeServer() + serverComponents, err := di.InitializeServer() + if err != nil { + t.Errorf("Error initializing server: %s", err) + return + } - testServer := httptest.NewServer(router) + testServer := httptest.NewServer(serverComponents.Echo) t.Cleanup(func() { testServer.Close() }) From 77358f9e36c99934216b6fb3820656ad32eb9b72 Mon Sep 17 00:00:00 2001 From: hikahana <22.h.hanada.nutfes@gmail.com> Date: Wed, 16 Jul 2025 13:49:32 +0900 Subject: [PATCH 10/12] =?UTF-8?q?fix:=20=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=82=B5=E3=83=BC=E3=83=90=E3=82=AF=E3=83=AA=E3=83=BC=E3=83=B3?= =?UTF-8?q?=E3=82=A2=E3=83=83=E3=83=97=E3=81=A7=E7=B5=82=E4=BA=86=E3=81=95?= =?UTF-8?q?=E3=81=9B=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/test/sample_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/api/test/sample_test.go b/api/test/sample_test.go index 1f24ccb1e..f45ae0258 100644 --- a/api/test/sample_test.go +++ b/api/test/sample_test.go @@ -85,6 +85,7 @@ func TestHelloHandler(t *testing.T) { testServer := httptest.NewServer(serverComponents.Echo) // サーバを立てる t.Cleanup(func() { testServer.Close() + serverComponents.Client.CloseDB() }) r, err := http.Get(testServer.URL + "/") @@ -121,6 +122,7 @@ func TestGetUserHandler(t *testing.T) { testServer := httptest.NewServer(serverComponents.Echo) // サーバを立てる t.Cleanup(func() { testServer.Close() + serverComponents.Client.CloseDB() }) r, err := http.Get(testServer.URL + "/users") @@ -156,6 +158,7 @@ func TestAddUserHandler(t *testing.T) { testServer := httptest.NewServer(serverComponents.Echo) t.Cleanup(func() { testServer.Close() + serverComponents.Client.CloseDB() }) u, err := url.Parse(testServer.URL + "/users") From 29dda351916634016f8c8970e834bf3b1ec69353 Mon Sep 17 00:00:00 2001 From: Kubosaka Date: Sat, 10 Jan 2026 23:59:28 +0900 Subject: [PATCH 11/12] fix --- api/externals/handler/wire.go | 35 +++----------------- api/internals/di/wire.go | 62 +++-------------------------------- 2 files changed, 8 insertions(+), 89 deletions(-) diff --git a/api/externals/handler/wire.go b/api/externals/handler/wire.go index 7ebc3c521..63757a81b 100644 --- a/api/externals/handler/wire.go +++ b/api/externals/handler/wire.go @@ -1,40 +1,13 @@ //go:build wireinject // +build wireinject -package controller +package handler import ( "github.com/google/wire" ) -// ControllerProviderSet - Controller層のProviderセット -var ControllerProviderSet = wire.NewSet( - NewActivityController, - NewActivityInformationController, - NewActivityStyleController, - NewBudgetController, - NewBureauController, - NewBuyReportController, - NewDepartmentController, - NewDivisionController, - NewExpenseController, - NewFestivalItemController, - NewFinancialRecordController, - NewFundInformationController, - NewHealthCheckController, - NewIncomeController, - NewIncomeExpenditureManagementController, - NewMailAuthController, - NewObjectUploadController, - NewPasswordResetTokenController, - NewPurchaseItemController, - NewPurchaseOrderController, - NewPurchaseReportController, - NewReceiptController, - NewSourceController, - NewSponsorController, - NewSponsorStyleController, - NewTeacherController, - NewUserController, - NewYearController, +// HandlerProviderSet - Handler層のProviderセット +var HandlerProviderSet = wire.NewSet( + NewHandler, ) diff --git a/api/internals/di/wire.go b/api/internals/di/wire.go index 37b855e6c..e64930b16 100644 --- a/api/internals/di/wire.go +++ b/api/internals/di/wire.go @@ -7,7 +7,7 @@ import ( "github.com/NUTFes/FinanSu/api/drivers/db" "github.com/NUTFes/FinanSu/api/drivers/mc" "github.com/NUTFes/FinanSu/api/drivers/server" - "github.com/NUTFes/FinanSu/api/externals/controller" + "github.com/NUTFes/FinanSu/api/externals/handler" "github.com/NUTFes/FinanSu/api/externals/repository" "github.com/NUTFes/FinanSu/api/externals/repository/abstract" "github.com/NUTFes/FinanSu/api/internals/usecase" @@ -41,64 +41,10 @@ func ProvideCrud(client db.Client) abstract.Crud { // ProvideRouter - Router構築のProvider func ProvideRouter( - activityController controller.ActivityController, - activityInformationController controller.ActivityInformationController, - activityStyleController controller.ActivityStyleController, - budgetController controller.BudgetController, - bureauController controller.BureauController, - buyReportController controller.BuyReportController, - departmentController controller.DepartmentController, - divisionController controller.DivisionController, - expenseController controller.ExpenseController, - festivalItemController controller.FestivalItemController, - financialRecordController controller.FinancialRecordController, - fundInformationController controller.FundInformationController, - healthcheckController controller.HealthcheckController, - incomeController controller.IncomeController, - incomeExpenditureManagementController controller.IncomeExpenditureManagementController, - mailAuthController controller.MailAuthController, - objectUploadController controller.ObjectUploadController, - passwordResetTokenController controller.PasswordResetTokenController, - purchaseItemController controller.PurchaseItemController, - purchaseOrderController controller.PurchaseOrderController, - purchaseReportController controller.PurchaseReportController, - receiptController controller.ReceiptController, - sourceController controller.SourceController, - sponsorController controller.SponsorController, - sponsorStyleController controller.SponsorStyleController, - teacherController controller.TeacherController, - userController controller.UserController, - yearController controller.YearController, + handler handler.Handler, ) router.Router { return router.NewRouter( - activityController, - activityInformationController, - activityStyleController, - budgetController, - bureauController, - buyReportController, - departmentController, - divisionController, - expenseController, - festivalItemController, - financialRecordController, - fundInformationController, - healthcheckController, - incomeController, - incomeExpenditureManagementController, - mailAuthController, - objectUploadController, - passwordResetTokenController, - purchaseItemController, - purchaseOrderController, - purchaseReportController, - receiptController, - sourceController, - sponsorController, - sponsorStyleController, - teacherController, - userController, - yearController, + handler ) } @@ -126,7 +72,7 @@ func InitializeServer() (*ServerComponents, error) { // 各層のProviderセット repository.RepositoryProviderSet, usecase.UseCaseProviderSet, - controller.ControllerProviderSet, + handler.HandlerProviderSet, // Router/Server ProvideRouter, From 9ac3283e760ae0a8bce44b56eecacd5552eb38f3 Mon Sep 17 00:00:00 2001 From: Kubosaka Date: Sun, 11 Jan 2026 00:22:17 +0900 Subject: [PATCH 12/12] =?UTF-8?q?feat:=20handler=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/externals/repository/wire.go | 1 - api/internals/di/wire.go | 17 +--- api/internals/di/wire_gen.go | 130 +------------------------------ api/internals/usecase/wire.go | 1 - 4 files changed, 7 insertions(+), 142 deletions(-) diff --git a/api/externals/repository/wire.go b/api/externals/repository/wire.go index 5709e3807..807fc8ab5 100644 --- a/api/externals/repository/wire.go +++ b/api/externals/repository/wire.go @@ -20,7 +20,6 @@ var RepositoryProviderSet = wire.NewSet( NewExpenseRepository, NewFestivalItemRepository, NewFinancialRecordRepository, - NewFundInformationRepository, NewIncomeRepository, NewIncomeExpenditureManagementRepository, NewMailAuthRepository, diff --git a/api/internals/di/wire.go b/api/internals/di/wire.go index e64930b16..f47149cdc 100644 --- a/api/internals/di/wire.go +++ b/api/internals/di/wire.go @@ -11,7 +11,6 @@ import ( "github.com/NUTFes/FinanSu/api/externals/repository" "github.com/NUTFes/FinanSu/api/externals/repository/abstract" "github.com/NUTFes/FinanSu/api/internals/usecase" - "github.com/NUTFes/FinanSu/api/router" "github.com/google/wire" "github.com/labstack/echo/v4" ) @@ -39,18 +38,9 @@ func ProvideCrud(client db.Client) abstract.Crud { return abstract.NewCrud(client) } -// ProvideRouter - Router構築のProvider -func ProvideRouter( - handler handler.Handler, -) router.Router { - return router.NewRouter( - handler - ) -} - // ProvideServer - ServerのProvider -func ProvideServer(router router.Router) *echo.Echo { - return server.RunServer(router) +func ProvideServer(h *handler.Handler) *echo.Echo { + return server.RunServer(h) } // ProvideServerComponents - ServerComponentsのProvider @@ -74,8 +64,7 @@ func InitializeServer() (*ServerComponents, error) { usecase.UseCaseProviderSet, handler.HandlerProviderSet, - // Router/Server - ProvideRouter, + // Server ProvideServer, ProvideServerComponents, ) diff --git a/api/internals/di/wire_gen.go b/api/internals/di/wire_gen.go index 3664fbe72..c216ddcc2 100644 --- a/api/internals/di/wire_gen.go +++ b/api/internals/di/wire_gen.go @@ -14,7 +14,6 @@ import ( "github.com/NUTFes/FinanSu/api/externals/repository" "github.com/NUTFes/FinanSu/api/externals/repository/abstract" "github.com/NUTFes/FinanSu/api/internals/usecase" - "github.com/NUTFes/FinanSu/api/router" "github.com/labstack/echo/v4" ) @@ -29,19 +28,12 @@ func InitializeServer() (*ServerComponents, error) { crud := ProvideCrud(client) activityRepository := repository.NewActivityRepository(client, crud) activityUseCase := usecase.NewActivityUseCase(activityRepository) - activityController := controller.NewActivityController(activityUseCase) activityInformationRepository := repository.NewActivityInformationsRepository(client, crud) activityInformationUseCase := usecase.NewActivityInformationUseCase(activityInformationRepository) - activityInformationController := controller.NewActivityInformationController(activityInformationUseCase) activityStyleRepository := repository.NewActivityStyleRepository(client, crud) activityStyleUseCase := usecase.NewActivityStyleUseCase(activityStyleRepository) - activityStyleController := controller.NewActivityStyleController(activityStyleUseCase) - budgetRepository := repository.NewBudgetRepository(client, crud) - budgetUseCase := usecase.NewBudgetUseCase(budgetRepository) - budgetController := controller.NewBudgetController(budgetUseCase) bureauRepository := repository.NewBureauRepository(client, crud) bureauUseCase := usecase.NewBureauUseCase(bureauRepository) - bureauController := controller.NewBureauController(bureauUseCase) buyReportRepository := repository.NewBuyReportRepository(client, crud) transactionRepository := repository.NewTransactionRepository(client, crud) mcClient, err := ProvideMinioClient() @@ -51,72 +43,35 @@ func InitializeServer() (*ServerComponents, error) { objectHandleRepository := repository.NewObjectHandleRepository(mcClient) incomeExpenditureManagementRepository := repository.NewIncomeExpenditureManagementRepository(client, crud) buyReportUseCase := usecase.NewBuyReportUseCase(buyReportRepository, transactionRepository, objectHandleRepository, incomeExpenditureManagementRepository) - buyReportController := controller.NewBuyReportController(buyReportUseCase) departmentRepository := repository.NewDepartmentRepository(client, crud) departmentUseCase := usecase.NewDepartmentUseCase(departmentRepository) - departmentController := controller.NewDepartmentController(departmentUseCase) divisionRepository := repository.NewDivisionRepository(client, crud) divisionUseCase := usecase.NewDivisionUseCase(divisionRepository) - divisionController := controller.NewDivisionController(divisionUseCase) - expenseRepository := repository.NewExpenseRepository(client, crud) - expenseUseCase := usecase.NewExpenseUseCase(expenseRepository) - expenseController := controller.NewExpenseController(expenseUseCase) festivalItemRepository := repository.NewFestivalItemRepository(client, crud) festivalItemUseCase := usecase.NewFestivalItemUseCase(festivalItemRepository, transactionRepository) - festivalItemController := controller.NewFestivalItemController(festivalItemUseCase) financialRecordRepository := repository.NewFinancialRecordRepository(client, crud) financialRecordUseCase := usecase.NewFinancialRecordUseCase(financialRecordRepository) - financialRecordController := controller.NewFinancialRecordController(financialRecordUseCase) - fundInformationRepository := repository.NewFundInformationRepository(client, crud) - fundInformationUseCase := usecase.NewFundInformationUseCase(fundInformationRepository) - fundInformationController := controller.NewFundInformationController(fundInformationUseCase) - healthcheckController := controller.NewHealthCheckController() incomeRepository := repository.NewIncomeRepository(client, crud) incomeUseCase := usecase.NewIncomeUseCase(incomeRepository, incomeExpenditureManagementRepository, transactionRepository) - incomeController := controller.NewIncomeController(incomeUseCase) incomeExpenditureManagementUseCase := usecase.NewIncomeExpenditureManagementUseCase(incomeExpenditureManagementRepository) - incomeExpenditureManagementController := controller.NewIncomeExpenditureManagementController(incomeExpenditureManagementUseCase) mailAuthRepository := repository.NewMailAuthRepository(client, crud) sessionRepository := repository.NewSessionRepository(client) mailAuthUseCase := usecase.NewMailAuthUseCase(mailAuthRepository, sessionRepository) - mailAuthController := controller.NewMailAuthController(mailAuthUseCase) objectUploadUseCase := usecase.NewObjectUploadUseCase(objectHandleRepository) - objectUploadController := controller.NewObjectUploadController(objectUploadUseCase) passwordResetTokenRepository := repository.NewPasswordResetTokenRepository(client, crud) userRepository := repository.NewUserRepository(client, crud) passwordResetTokenUseCase := usecase.NewPasswordResetTokenUseCase(passwordResetTokenRepository, userRepository, mailAuthRepository) - passwordResetTokenController := controller.NewPasswordResetTokenController(passwordResetTokenUseCase) - purchaseItemRepository := repository.NewPurchaseItemRepository(client, crud) - purchaseItemUseCase := usecase.NewPurchaseItemUseCase(purchaseItemRepository) - purchaseItemController := controller.NewPurchaseItemController(purchaseItemUseCase) - purchaseOrderRepository := repository.NewPurchaseOrderRepository(client, crud) - purchaseOrderUseCase := usecase.NewPurchaseOrderUseCase(purchaseOrderRepository, bureauRepository, expenseRepository) - purchaseOrderController := controller.NewPurchaseOrderController(purchaseOrderUseCase) - purchaseReportRepository := repository.NewPurchaseReportRepository(client, crud) - purchaseReportUseCase := usecase.NewPurchaseReportUseCase(purchaseReportRepository) - purchaseReportController := controller.NewPurchaseReportController(purchaseReportUseCase) - receiptRepository := repository.NewReceiptRepository(client, crud) - receiptUseCase := usecase.NewReceiptUseCase(receiptRepository) - receiptController := controller.NewReceiptController(receiptUseCase) - sourceRepository := repository.NewSourceRepository(client, crud) - sourceUseCase := usecase.NewSourceUseCase(sourceRepository) - sourceController := controller.NewSourceController(sourceUseCase) sponsorRepository := repository.NewSponsorRepository(client, crud) sponsorUseCase := usecase.NewSponsorUseCase(sponsorRepository) - sponsorController := controller.NewSponsorController(sponsorUseCase) sponsorStyleRepository := repository.NewSponsorStyleRepository(client, crud) sponsorStyleUseCase := usecase.NewSponsorStyleUseCase(sponsorStyleRepository) - sponsorStyleController := controller.NewSponsorStyleController(sponsorStyleUseCase) teacherRepository := repository.NewTeacherRepository(client, crud) teacherUseCase := usecase.NewTeacherUseCase(teacherRepository) - teacherController := controller.NewTeacherController(teacherUseCase) userUseCase := usecase.NewUserUseCase(userRepository, sessionRepository) - userController := controller.NewUserController(userUseCase) yearRepository := repository.NewYearRepository(client, crud) yearUseCase := usecase.NewYearUseCase(yearRepository) - yearController := controller.NewYearController(yearUseCase) - router := ProvideRouter(activityController, activityInformationController, activityStyleController, budgetController, bureauController, buyReportController, departmentController, divisionController, expenseController, festivalItemController, financialRecordController, fundInformationController, healthcheckController, incomeController, incomeExpenditureManagementController, mailAuthController, objectUploadController, passwordResetTokenController, purchaseItemController, purchaseOrderController, purchaseReportController, receiptController, sourceController, sponsorController, sponsorStyleController, teacherController, userController, yearController) - echo := ProvideServer(router) + handlerHandler := handler.NewHandler(activityUseCase, activityInformationUseCase, activityStyleUseCase, bureauUseCase, buyReportUseCase, departmentUseCase, divisionUseCase, festivalItemUseCase, financialRecordUseCase, incomeUseCase, incomeExpenditureManagementUseCase, mailAuthUseCase, objectUploadUseCase, passwordResetTokenUseCase, sponsorUseCase, sponsorStyleUseCase, teacherUseCase, userUseCase, yearUseCase) + echo := ProvideServer(handlerHandler) serverComponents := ProvideServerComponents(client, echo) return serverComponents, nil } @@ -145,8 +100,8 @@ func ProvideCrud(client db.Client) abstract.Crud { } // ProvideServer - ServerのProvider -func ProvideServer(router2 router.Router) *echo.Echo { - return server.RunServer(router2) +func ProvideServer(h *handler.Handler) *echo.Echo { + return server.RunServer(h) } // ProvideServerComponents - ServerComponentsのProvider @@ -155,81 +110,4 @@ func ProvideServerComponents(client db.Client, echo2 *echo.Echo) *ServerComponen Client: client, Echo: echo2, } - - activityInformationRepository := repository.NewActivityInformationsRepository(client, crud) - activityStyleRepository := repository.NewActivityStyleRepository(client, crud) - bureauRepository := repository.NewBureauRepository(client, crud) - buyReportRepository := repository.NewBuyReportRepository(client, crud) - departmentRepository := repository.NewDepartmentRepository(client, crud) - divisionRepository := repository.NewDivisionRepository(client, crud) - festivalItemRepository := repository.NewFestivalItemRepository(client, crud) - financialRecordRepository := repository.NewFinancialRecordRepository(client, crud) - incomeRepository := repository.NewIncomeRepository(client, crud) - incomeExpenditureManagementRepository := repository.NewIncomeExpenditureManagementRepository(client, crud) - mailAuthRepository := repository.NewMailAuthRepository(client, crud) - objectHandleRepository := repository.NewObjectHandleRepository(minioClient) - passwordResetTokenRepository := repository.NewPasswordResetTokenRepository(client, crud) - sessionRepository := repository.NewSessionRepository(client) - sponsorRepository := repository.NewSponsorRepository(client, crud) - sponsorStyleRepository := repository.NewSponsorStyleRepository(client, crud) - teacherRepository := repository.NewTeacherRepository(client, crud) - transactionRepository := repository.NewTransactionRepository(client, crud) - userRepository := repository.NewUserRepository(client, crud) - yearRepository := repository.NewYearRepository(client, crud) - // ↓ - - // UseCase - activityUseCase := usecase.NewActivityUseCase(activityRepository) - activityInformationUseCase := usecase.NewActivityInformationUseCase( - activityInformationRepository, - ) - activityStyleUseCase := usecase.NewActivityStyleUseCase(activityStyleRepository) - bureauUseCase := usecase.NewBureauUseCase(bureauRepository) - buyReportUseCase := usecase.NewBuyReportUseCase(buyReportRepository, transactionRepository, objectHandleRepository, incomeExpenditureManagementRepository) - departmentUseCase := usecase.NewDepartmentUseCase(departmentRepository) - divisionUseCase := usecase.NewDivisionUseCase(divisionRepository) - festivalUseCase := usecase.NewFestivalItemUseCase(festivalItemRepository, transactionRepository) - financialRecordUseCase := usecase.NewFinancialRecordUseCase(financialRecordRepository) - incomeUseCase := usecase.NewIncomeUseCase(incomeRepository, incomeExpenditureManagementRepository, transactionRepository) - incomeExpenditureManagementUseCase := usecase.NewIncomeExpenditureManagementUseCase(incomeExpenditureManagementRepository) - mailAuthUseCase := usecase.NewMailAuthUseCase(mailAuthRepository, sessionRepository) - objectHandleUseCase := usecase.NewObjectUploadUseCase(objectHandleRepository) - passwordResetTokenUseCase := usecase.NewPasswordResetTokenUseCase( - passwordResetTokenRepository, - userRepository, - mailAuthRepository, - ) - sponsorUseCase := usecase.NewSponsorUseCase(sponsorRepository) - sponsorStyleUseCase := usecase.NewSponsorStyleUseCase(sponsorStyleRepository) - teacherUseCase := usecase.NewTeacherUseCase(teacherRepository) - userUseCase := usecase.NewUserUseCase(userRepository, sessionRepository) - yearUseCase := usecase.NewYearUseCase(yearRepository) - // ↓ - - handler := handler.NewHandler( - activityUseCase, - activityInformationUseCase, - activityStyleUseCase, - bureauUseCase, - buyReportUseCase, - departmentUseCase, - divisionUseCase, - festivalUseCase, - financialRecordUseCase, - incomeUseCase, - incomeExpenditureManagementUseCase, - mailAuthUseCase, - objectHandleUseCase, - passwordResetTokenUseCase, - sponsorUseCase, - sponsorStyleUseCase, - teacherUseCase, - userUseCase, - yearUseCase, - ) - - // Server - e := server.RunServer(handler) - - return client, e } diff --git a/api/internals/usecase/wire.go b/api/internals/usecase/wire.go index bded17c6e..b34cadacd 100644 --- a/api/internals/usecase/wire.go +++ b/api/internals/usecase/wire.go @@ -20,7 +20,6 @@ var UseCaseProviderSet = wire.NewSet( NewExpenseUseCase, NewFestivalItemUseCase, NewFinancialRecordUseCase, - NewFundInformationUseCase, NewIncomeUseCase, NewIncomeExpenditureManagementUseCase, NewMailAuthUseCase,