Implement complete API routes and mock authentication for full CMS functionality

- Add comprehensive nested route structure with proper authentication layers
- Implement UpdateContent and ReorderCollectionItems handlers with repository pattern
- Add automatic mock JWT token fetching for seamless development workflow
- Restore content editing and collection reordering functionality broken after database refactoring
- Provide production-ready authentication architecture with development convenience
- Enable full CMS operations in browser with proper CRUD and bulk transaction support
This commit is contained in:
2025-10-16 21:23:17 +02:00
parent bbf728d110
commit 87b78a4a69
11 changed files with 1095 additions and 218 deletions

View File

@@ -11,6 +11,7 @@ type ContentRepository interface {
GetBulkContent(ctx context.Context, siteID string, contentIDs []string) (map[string]ContentItem, error)
GetAllContent(ctx context.Context, siteID string) (map[string]ContentItem, error)
CreateContent(ctx context.Context, siteID, contentID, htmlContent, originalTemplate, lastEditedBy string) (*ContentItem, error)
UpdateContent(ctx context.Context, siteID, contentID, htmlContent, lastEditedBy string) (*ContentItem, error)
// Collection operations
GetCollection(ctx context.Context, siteID, collectionID string) (*CollectionItem, error)
@@ -20,6 +21,7 @@ type ContentRepository interface {
CreateCollectionTemplate(ctx context.Context, siteID, collectionID, name, htmlTemplate string, isDefault bool) (*CollectionTemplateItem, error)
CreateCollectionItem(ctx context.Context, siteID, collectionID, itemID string, templateID int, htmlContent string, position int, lastEditedBy string) (*CollectionItemWithTemplate, error)
CreateCollectionItemAtomic(ctx context.Context, siteID, collectionID string, templateID int, lastEditedBy string) (*CollectionItemWithTemplate, error)
ReorderCollectionItems(ctx context.Context, siteID, collectionID string, items []CollectionItemPosition, lastEditedBy string) error
// Transaction support
WithTransaction(ctx context.Context, fn func(ContentRepository) error) error
@@ -77,6 +79,12 @@ type CollectionItemWithTemplate struct {
IsDefault bool `json:"is_default"`
}
// CollectionItemPosition represents item position for reordering
type CollectionItemPosition struct {
ItemID string `json:"itemId"`
Position int `json:"position"`
}
// Helper function to convert sql.NullString to string
func getStringFromNullString(ns sql.NullString) string {
if ns.Valid {