Refactor: add stable folder layout foundation

This commit is contained in:
MangoPig
2026-06-25 21:53:29 +01:00
parent da1b210865
commit 24d1e472a2
7 changed files with 743 additions and 110 deletions
@@ -28,7 +28,10 @@ type deleteProjectFolderRequest struct {
type moveProjectFolderRequest struct {
FolderID string `json:"folderId"`
FolderNodeID string `json:"folderNodeId"`
ParentFolderID string `json:"parentFolderId"`
ParentNodeID string `json:"parentNodeId"`
TargetIndex int `json:"targetIndex"`
}
func (routes apiRoutes) handleProjectFolders(w http.ResponseWriter, r *http.Request) {
@@ -179,7 +182,9 @@ func (routes apiRoutes) handleMoveProjectFolder(w http.ResponseWriter, r *http.R
}
payload.FolderID = strings.TrimSpace(payload.FolderID)
payload.FolderNodeID = strings.TrimSpace(payload.FolderNodeID)
payload.ParentFolderID = strings.TrimSpace(payload.ParentFolderID)
payload.ParentNodeID = strings.TrimSpace(payload.ParentNodeID)
if payload.FolderID == "" {
WriteError(w, http.StatusBadRequest, RequestIDFromContext(r.Context()), "invalid_request", "Folder ID is required.")
return
@@ -188,7 +193,10 @@ func (routes apiRoutes) handleMoveProjectFolder(w http.ResponseWriter, r *http.R
result, err := routes.bootstrapService().MoveProjectFolder(r.Context(), bootstrapservice.MoveProjectFolderInput{
ProjectID: projectID,
FolderID: payload.FolderID,
FolderNodeID: payload.FolderNodeID,
ParentFolderID: payload.ParentFolderID,
ParentNodeID: payload.ParentNodeID,
TargetIndex: payload.TargetIndex,
})
if err != nil {
routes.writeProjectFolderError(w, r, err, "move")
@@ -352,7 +360,9 @@ func (routes apiRoutes) handleMoveProjectTreeFolder(w http.ResponseWriter, r *ht
}
payload.FolderID = strings.TrimSpace(payload.FolderID)
payload.FolderNodeID = strings.TrimSpace(payload.FolderNodeID)
payload.ParentFolderID = strings.TrimSpace(payload.ParentFolderID)
payload.ParentNodeID = strings.TrimSpace(payload.ParentNodeID)
if payload.FolderID == "" {
WriteError(w, http.StatusBadRequest, RequestIDFromContext(r.Context()), "invalid_request", "Folder ID is required.")
return
@@ -361,7 +371,10 @@ func (routes apiRoutes) handleMoveProjectTreeFolder(w http.ResponseWriter, r *ht
result, err := routes.bootstrapService().MoveProjectTreeFolder(r.Context(), bootstrapservice.MoveProjectFolderInput{
ProjectID: projectID,
FolderID: payload.FolderID,
FolderNodeID: payload.FolderNodeID,
ParentFolderID: payload.ParentFolderID,
ParentNodeID: payload.ParentNodeID,
TargetIndex: payload.TargetIndex,
})
if err != nil {
routes.writeProjectFolderError(w, r, err, "move")