package handler import ( "database/sql" "encoding/json" "net/http" "floorvisualizer/internal/service" ) func handleRegister(authSvc *service.AuthService, db *sql.DB) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { writeErr(w, 405, "Method not allowed") return } var input service.RegisterInput if err := json.NewDecoder(r.Body).Decode(&input); err != nil { writeJSON(w, 400, map[string]string{"error": "invalid request body"}) return } resp, err := authSvc.Register(db, input) if err != nil { writeJSON(w, 400, map[string]string{"error": err.Error()}) return } writeJSON(w, 201, resp) } } func handleLogin(authSvc *service.AuthService, db *sql.DB) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { writeErr(w, 405, "Method not allowed") return } var input service.LoginInput if err := json.NewDecoder(r.Body).Decode(&input); err != nil { writeJSON(w, 400, map[string]string{"error": "invalid request body"}) return } resp, err := authSvc.Login(db, input) if err != nil { writeJSON(w, 401, map[string]string{"error": err.Error()}) return } writeJSON(w, 200, resp) } }