From 1b5c70be7111237b8a5fb09dedc5a0934ff0ae8a Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Thu, 29 Jan 2026 08:52:39 -0500 Subject: [PATCH] fix: validate library folder paths before saving - Add os package import for file system checks - Validate that folder paths exist before adding to library - Check folder accessibility to prevent invalid paths - Return clear error messages for invalid folders Improves user experience by catching path errors early --- internal/handlers/library.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/internal/handlers/library.go b/internal/handlers/library.go index b3cf96a..01ad375 100644 --- a/internal/handlers/library.go +++ b/internal/handlers/library.go @@ -4,6 +4,7 @@ import ( "bookmann/internal/database" "bookmann/internal/services" "net/http" + "os" "github.com/google/uuid" "github.com/jackc/pgx/v5/pgtype" @@ -173,6 +174,14 @@ func (h *LibraryHandler) AddLibraryFolder(c echo.Context) error { return c.JSON(http.StatusBadRequest, map[string]string{"error": err.Error()}) } + // Validate that folder path exists and is accessible + if _, err := os.Stat(req.FolderPath); os.IsNotExist(err) { + return c.JSON(http.StatusBadRequest, map[string]string{"error": "folder path does not exist"}) + } + if err != nil { + return c.JSON(http.StatusBadRequest, map[string]string{"error": "folder is not accessible"}) + } + folder, err := h.libraryService.AddLibraryFolder( c.Request().Context(), libraryID,