Complete tasks 4.1-4.2: Page management service and HTTP endpoints
- Implemented PageService with full CRUD operations - Added GetPages, CreatePage, UpdatePage, DeletePage, ReorderPages methods - Cascade deletion of widgets when page is deleted - Prevention of last page deletion - Created page HTTP endpoints (GET, POST, PUT, DELETE, reorder) - HTMX-friendly HTML fragment responses - Comprehensive unit tests for service and handlers - Updated dashboard to use PageService and create default pages
This commit is contained in:
17
internal/services/interfaces.go
Normal file
17
internal/services/interfaces.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"custom-start-page/internal/models"
|
||||
)
|
||||
|
||||
// PageServiceInterface defines the interface for page operations
|
||||
type PageServiceInterface interface {
|
||||
GetPages(ctx context.Context, userID string) ([]*models.Page, error)
|
||||
CreatePage(ctx context.Context, userID, name string) (*models.Page, error)
|
||||
CreateDefaultPage(ctx context.Context, userID string) (*models.Page, error)
|
||||
UpdatePage(ctx context.Context, userID, pageID, name string) (*models.Page, error)
|
||||
DeletePage(ctx context.Context, userID, pageID string) error
|
||||
ReorderPages(ctx context.Context, userID string, pageOrder []string) error
|
||||
}
|
||||
Reference in New Issue
Block a user