refactor(rename): handler functions, routes, legacy 301 redirects
Second rename pass closing the backend cleanup:
* handler functions (handleListProjekte, handleCreateFrist, …) renamed
to English equivalents so every symbol in the handler package matches
the URL/entity it serves.
* services.FristStatusFilter + filter constants renamed to
DeadlineStatusFilter / DeadlineFilterOverdue etc.
* services.TerminListFilter / TerminCalDAVPusher / TerminSummaryCounts
renamed to AppointmentListFilter / AppointmentCalDAVPusher /
AppointmentSummaryCounts.
* GlossarTerm/GlossarSuggestion/glossarTerms → Glossary*.
* CourtsFeedback/CourtsResponse (formerly Gerichte*).
* handlers.Services.{Projekt,Parteien,Frist,Termin,Notiz,Dezernat} →
{Project,Party,Deadline,Appointment,Note,Department}; dbServices
struct + consumers likewise.
* email templates: {{.FristURL}} → {{.DeadlineURL}}, {{.FristenURL}} →
{{.DeadlinesURL}}.
* links.go category IDs: gerichte → courts.
* cmd/server/main.go local vars: projektSvc/terminSvc/dezernatSvc →
projectSvc/appointmentSvc/departmentSvc.
Routes:
* removed all /api/akten alias routes (API clients use /api/projects now).
* removed /api/akten/*/deadlines, /*/notes, /*/parties, /*/appointments,
/*/checklists, /*/events, /*/summary alias variants.
* new internal/handlers/redirects.go registers 301 Moved Permanently
redirects for every legacy German GET path: /akten, /projekte, /fristen,
/termine, /notizen, /einstellungen, /checklisten, /dezernate, /parteien,
/gerichte, /glossar. Sub-paths + query strings are preserved so old
bookmarks keep working.
Kept in German (product names, per task spec):
* /tools/fristenrechner, /tools/kostenrechner, /tools/gebuehrentabellen
* FristenrechnerService / KostenrechnerService types
* User.Dezernat + paliad.users.dezernat free-text legacy column (separate
from the new paliad.departments entity).
go build / vet / test clean.
This commit is contained in:
@@ -17,17 +17,17 @@ import (
|
||||
type dbServices struct {
|
||||
projects *services.ProjectService
|
||||
team *services.TeamService
|
||||
dezernat *services.DepartmentService
|
||||
parties *services.PartyService
|
||||
deadline *services.DeadlineService
|
||||
appointment *services.AppointmentService
|
||||
department *services.DepartmentService
|
||||
parties *services.PartyService
|
||||
deadline *services.DeadlineService
|
||||
appointment *services.AppointmentService
|
||||
caldav *services.CalDAVService
|
||||
rules *services.DeadlineRuleService
|
||||
calc *services.DeadlineCalculator
|
||||
users *services.UserService
|
||||
fristenrechner *services.FristenrechnerService
|
||||
dashboard *services.DashboardService
|
||||
note *services.NoteService
|
||||
note *services.NoteService
|
||||
checklistInst *services.ChecklistInstanceService
|
||||
mail *services.MailService
|
||||
invite *services.InviteService
|
||||
@@ -75,7 +75,7 @@ func writeServiceError(w http.ResponseWriter, err error) {
|
||||
|
||||
// GET /api/projects — list visible projects.
|
||||
// Query params: ?type=case&status=active&parent_id=<uuid>&parent_null=1&search=foo
|
||||
func handleListProjekte(w http.ResponseWriter, r *http.Request) {
|
||||
func handleListProjects(w http.ResponseWriter, r *http.Request) {
|
||||
if !requireDB(w) {
|
||||
return
|
||||
}
|
||||
@@ -112,7 +112,7 @@ func handleListProjekte(w http.ResponseWriter, r *http.Request) {
|
||||
// ({aktenzeichen, owning_office, court_ref}) for the frontend transition.
|
||||
// aktenzeichen → reference, court_ref → case_number, owning_office is dropped
|
||||
// (no longer part of the visibility model). Type defaults to 'case'.
|
||||
func handleCreateProjekt(w http.ResponseWriter, r *http.Request) {
|
||||
func handleCreateProject(w http.ResponseWriter, r *http.Request) {
|
||||
if !requireDB(w) {
|
||||
return
|
||||
}
|
||||
@@ -181,7 +181,7 @@ func handleCreateProjekt(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// GET /api/projects/{id}
|
||||
func handleGetProjekt(w http.ResponseWriter, r *http.Request) {
|
||||
func handleGetProject(w http.ResponseWriter, r *http.Request) {
|
||||
if !requireDB(w) {
|
||||
return
|
||||
}
|
||||
@@ -203,7 +203,7 @@ func handleGetProjekt(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// GET /api/projects/{id}/children — direct children.
|
||||
func handleListProjektChildren(w http.ResponseWriter, r *http.Request) {
|
||||
func handleListProjectChildren(w http.ResponseWriter, r *http.Request) {
|
||||
if !requireDB(w) {
|
||||
return
|
||||
}
|
||||
@@ -225,7 +225,7 @@ func handleListProjektChildren(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// GET /api/projects/{id}/tree — full subtree depth-first (path-ordered).
|
||||
func handleGetProjektTree(w http.ResponseWriter, r *http.Request) {
|
||||
func handleGetProjectTree(w http.ResponseWriter, r *http.Request) {
|
||||
if !requireDB(w) {
|
||||
return
|
||||
}
|
||||
@@ -247,7 +247,7 @@ func handleGetProjektTree(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// GET /api/projects/{id}/ancestors — ancestor chain for breadcrumbs.
|
||||
func handleListProjektAncestors(w http.ResponseWriter, r *http.Request) {
|
||||
func handleListProjectAncestors(w http.ResponseWriter, r *http.Request) {
|
||||
if !requireDB(w) {
|
||||
return
|
||||
}
|
||||
@@ -269,7 +269,7 @@ func handleListProjektAncestors(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// PATCH /api/projects/{id}
|
||||
func handleUpdateProjekt(w http.ResponseWriter, r *http.Request) {
|
||||
func handleUpdateProject(w http.ResponseWriter, r *http.Request) {
|
||||
if !requireDB(w) {
|
||||
return
|
||||
}
|
||||
@@ -296,7 +296,7 @@ func handleUpdateProjekt(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// DELETE /api/projects/{id}
|
||||
func handleDeleteProjekt(w http.ResponseWriter, r *http.Request) {
|
||||
func handleDeleteProject(w http.ResponseWriter, r *http.Request) {
|
||||
if !requireDB(w) {
|
||||
return
|
||||
}
|
||||
@@ -358,7 +358,7 @@ func handleListProjectEvents(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// GET /api/projects/{id}/parties
|
||||
func handleListParteien(w http.ResponseWriter, r *http.Request) {
|
||||
func handleListParties(w http.ResponseWriter, r *http.Request) {
|
||||
if !requireDB(w) {
|
||||
return
|
||||
}
|
||||
@@ -380,7 +380,7 @@ func handleListParteien(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// POST /api/projects/{id}/parties
|
||||
func handleCreatePartei(w http.ResponseWriter, r *http.Request) {
|
||||
func handleCreateParty(w http.ResponseWriter, r *http.Request) {
|
||||
if !requireDB(w) {
|
||||
return
|
||||
}
|
||||
@@ -407,7 +407,7 @@ func handleCreatePartei(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
// DELETE /api/parties/{id}
|
||||
func handleDeletePartei(w http.ResponseWriter, r *http.Request) {
|
||||
func handleDeleteParty(w http.ResponseWriter, r *http.Request) {
|
||||
if !requireDB(w) {
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user