some testing with python

This commit is contained in:
samantha42
2026-03-20 21:53:55 +01:00
parent 1d06e51db3
commit 7e7c3f6bf4
14 changed files with 3152 additions and 2 deletions

20
main.go
View File

@@ -34,23 +34,39 @@ func main() {
os.Exit(1)
}
// Reference data (FK parents — must exist before budgets/actuals)
referenceRepo := database.NewReferenceRepo(db)
referenceH := handler.NewReferenceHandler(referenceRepo)
// Core FP&A
budgetRepo := database.NewBudgetRepo(db)
actualsRepo := database.NewActualsRepo(db)
budgetSvc := service.NewBudgetService(budgetRepo)
varianceSvc := service.NewVarianceService(budgetRepo, actualsRepo)
budgetH := handler.NewBudgetHandler(budgetSvc)
actualsH := handler.NewActualsHandler(actualsRepo)
varianceH := handler.NewVarianceHandler(varianceSvc)
mux := http.NewServeMux()
// Reference endpoints
mux.HandleFunc("POST /api/v1/departments", referenceH.CreateDepartment)
mux.HandleFunc("GET /api/v1/departments", referenceH.ListDepartments)
mux.HandleFunc("DELETE /api/v1/departments/{id}", referenceH.DeleteDepartment)
mux.HandleFunc("POST /api/v1/gl-accounts", referenceH.CreateGLAccount)
mux.HandleFunc("GET /api/v1/gl-accounts", referenceH.ListGLAccounts)
mux.HandleFunc("DELETE /api/v1/gl-accounts/{id}", referenceH.DeleteGLAccount)
// Budget endpoints
mux.HandleFunc("POST /api/v1/budgets", budgetH.Create)
mux.HandleFunc("PUT /api/v1/budgets/{id}", budgetH.Update)
mux.HandleFunc("DELETE /api/v1/budgets/{id}", budgetH.Delete)
// Actuals + variance
mux.HandleFunc("POST /api/v1/actuals/ingest", actualsH.Ingest)
mux.HandleFunc("GET /api/v1/variance", varianceH.Report)
mux.HandleFunc("GET /api/v1/variance/alerts", varianceH.Alerts)
mux.HandleFunc("GET /api/v1/health", func(w http.ResponseWriter, r *http.Request) {
if err := db.PingContext(r.Context()); err != nil {
http.Error(w, `{"error":"db unhealthy"}`, http.StatusServiceUnavailable)