fix(library): sync allowed extensions from Go source of truth to DB on startup
AllowedExtensions in Go was the intended single source of truth for library type file extensions, but it was never synced to the database. This caused missing extensions like .pdf for manga to be absent from library_types. - Add SyncAllowedExtensions() to sync Go AllowedExtensions map to DB - Call SyncAllowedExtensions() from cmd/server/main.go on startup - Ensure .pdf is included in manga extensions
This commit is contained in:
1 parent
0855dd7b3b
commit
b8dc4e87d5
1 file changed
+14
@@ -4,6 +4,7 @@ import (
|
||||
"bookhoard/internal/database"
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@@ -286,6 +287,19 @@ func (s *LibraryService) BrowseDirectories(ctx context.Context, path string) ([]
|
||||
return dirs, cleanPath, parentPath, nil
|
||||
}
|
||||
|
||||
// SyncAllowedExtensions syncs the Go AllowedExtensions map into the database.
|
||||
// This ensures library_types.allowed_extensions stays in sync with the Go source of truth.
|
||||
func (s *LibraryService) SyncAllowedExtensions(ctx context.Context) {
|
||||
for typeName, exts := range AllowedExtensions {
|
||||
if err := s.db.SyncLibraryTypeExtensions(ctx, database.SyncLibraryTypeExtensionsParams{
|
||||
Name: typeName,
|
||||
AllowedExtensions: exts,
|
||||
}); err != nil {
|
||||
log.Printf("Warning: failed to sync allowed extensions for library type %s: %v", typeName, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (s *LibraryService) ResolveMediaPath(ctx context.Context, libraryID pgtype.UUID, relativePath string) (string, error) {
|
||||
// Get library folders for this library
|
||||
folders, err := s.db.GetLibraryFolders(ctx, libraryID)
|
||||
|
||||
Reference in new issue
Block a user