better end points and better tests

This commit is contained in:
samantha42
2026-03-21 15:47:40 +01:00
parent 3f203178b2
commit 3490dd13d4
10 changed files with 482 additions and 34 deletions

18
main.go
View File

@@ -46,6 +46,9 @@ func main() {
budgetH := handler.NewBudgetHandler(budgetSvc)
actualsH := handler.NewActualsHandler(actualsRepo)
varianceH := handler.NewVarianceHandler(varianceSvc)
reportRepo := database.NewReportRepo(db)
reportSvc := service.NewReportService(reportRepo)
reportH := handler.NewReportHandler(reportSvc)
mux := http.NewServeMux()
// Reference endpoints
@@ -56,20 +59,25 @@ func main() {
mux.HandleFunc("GET /api/v1/department/actual", referenceH.ListDepartments)
mux.HandleFunc("POST /api/v1/gl-account/create", referenceH.CreateGLAccount)
mux.HandleFunc("DELETE /api/v1/gl-accounts/delete", referenceH.DeleteGLAccount)
mux.HandleFunc("DELETE /api/v1/gl-account/delete", referenceH.DeleteGLAccount)
mux.HandleFunc("GET /api/v1/gl-account/list", referenceH.ListGLAccounts)
mux.HandleFunc("GET /api/v1/gl-accounts/bugdet", referenceH.ListDepartments)
mux.HandleFunc("GET /api/v1/gl-accounts/actual", referenceH.ListDepartments)
mux.HandleFunc("GET /api/v1/gl-account/bugdet", referenceH.ListDepartments)
mux.HandleFunc("GET /api/v1/gl-account/actual", referenceH.ListDepartments)
// Budget endpoints
mux.HandleFunc("POST /api/v1/budget/create", budgetH.Create)
mux.HandleFunc("PUT /api/v1/budgets/update", budgetH.Update)
mux.HandleFunc("DELETE /api/v1/budgets/delete", budgetH.Delete)
mux.HandleFunc("PUT /api/v1/budget/update", budgetH.Update)
mux.HandleFunc("DELETE /api/v1/budget/delete", budgetH.Delete)
// Actuals + variance
mux.HandleFunc("POST /api/v1/actuals/ingest", actualsH.Ingest)
mux.HandleFunc("POST /api/v1/actuals/ingest/batch", actualsH.IngestBatch)
mux.HandleFunc("GET /api/v1/variance", varianceH.Report)
mux.HandleFunc("GET /api/v1/variance/alerts", varianceH.Alerts)
mux.HandleFunc("GET /api/v1/variance/reforecast", varianceH.Alerts)
//reports
mux.HandleFunc("GET /api/v1/reports/pnl", reportH.PnL)
mux.HandleFunc("GET /api/v1/health", func(w http.ResponseWriter, r *http.Request) {
if err := db.PingContext(r.Context()); err != nil {