Initial commit: Open sourcing all of the Maple Open Technologies code.
This commit is contained in:
commit
755d54a99d
2010 changed files with 448675 additions and 0 deletions
119
cloud/maplefile-backend/internal/interface/http/routes.go
Normal file
119
cloud/maplefile-backend/internal/interface/http/routes.go
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
package http
|
||||
|
||||
// routes.go - HTTP route registration for MapleFile backend
|
||||
// This file documents all available endpoints
|
||||
|
||||
/*
|
||||
ROUTE STRUCTURE:
|
||||
|
||||
Public Routes (No authentication required):
|
||||
GET /health - Health check
|
||||
GET /version - Version information
|
||||
POST /api/v1/auth/register - User registration
|
||||
POST /api/v1/auth/login - User login
|
||||
POST /api/v1/auth/refresh - Refresh JWT token
|
||||
POST /api/v1/auth/logout - Logout
|
||||
|
||||
Protected Routes (Authentication required):
|
||||
|
||||
Auth & Profile:
|
||||
GET /api/v1/me - Get current user profile
|
||||
PUT /api/v1/me - Update user profile
|
||||
DELETE /api/v1/me - Delete user account
|
||||
POST /api/v1/me/verify - Verify user profile
|
||||
|
||||
Dashboard:
|
||||
GET /api/v1/dashboard - Get dashboard data
|
||||
|
||||
Invitations:
|
||||
POST /api/v1/invites/send-email - Send invitation to non-registered user
|
||||
|
||||
Collections (Basic CRUD):
|
||||
POST /api/v1/collections - Create collection
|
||||
GET /api/v1/collections - List user collections
|
||||
GET /api/v1/collections/{id} - Get collection by ID
|
||||
PUT /api/v1/collections/{id} - Update collection
|
||||
DELETE /api/v1/collections/{id} - Delete collection
|
||||
|
||||
Collections (Hierarchical):
|
||||
GET /api/v1/collections/root - Get root collections
|
||||
GET /api/v1/collections/parent/{parent_id} - Get collections by parent
|
||||
PUT /api/v1/collections/{id}/move - Move collection
|
||||
|
||||
Collections (Sharing):
|
||||
POST /api/v1/collections/{id}/share - Share collection
|
||||
DELETE /api/v1/collections/{id}/members/{user_id} - Remove member
|
||||
GET /api/v1/collections/shared - List shared collections
|
||||
|
||||
Collections (Operations):
|
||||
PUT /api/v1/collections/{id}/archive - Archive collection
|
||||
PUT /api/v1/collections/{id}/restore - Restore collection
|
||||
GET /api/v1/collections/filtered - Get filtered collections
|
||||
POST /api/v1/collections/sync - Sync collections
|
||||
|
||||
Files (Basic CRUD):
|
||||
POST /api/v1/files/pending - Create pending file
|
||||
POST /api/v1/files/{id}/complete - Complete file upload
|
||||
GET /api/v1/files/{id} - Get file by ID
|
||||
PUT /api/v1/files/{id} - Update file
|
||||
DELETE /api/v1/files/{id} - Delete file
|
||||
POST /api/v1/files/delete-multiple - Delete multiple files
|
||||
|
||||
Files (Operations):
|
||||
GET /api/v1/files/collection/{collection_id} - List files by collection
|
||||
GET /api/v1/files/recent - List recent files
|
||||
PUT /api/v1/files/{id}/archive - Archive file
|
||||
PUT /api/v1/files/{id}/restore - Restore file
|
||||
POST /api/v1/files/sync - Sync files
|
||||
|
||||
Files (Storage):
|
||||
GET /api/v1/files/{id}/upload-url - Get presigned upload URL
|
||||
GET /api/v1/files/{id}/download-url - Get presigned download URL
|
||||
|
||||
Total Endpoints: ~47
|
||||
*/
|
||||
|
||||
// RouteInfo represents information about a route
|
||||
type RouteInfo struct {
|
||||
Method string
|
||||
Path string
|
||||
Description string
|
||||
Protected bool
|
||||
}
|
||||
|
||||
// GetAllRoutes returns a list of all available routes
|
||||
func GetAllRoutes() []RouteInfo {
|
||||
return []RouteInfo{
|
||||
// Public routes
|
||||
{Method: "GET", Path: "/health", Description: "Health check", Protected: false},
|
||||
{Method: "GET", Path: "/version", Description: "Version information", Protected: false},
|
||||
{Method: "POST", Path: "/api/v1/auth/register", Description: "User registration", Protected: false},
|
||||
{Method: "POST", Path: "/api/v1/auth/login", Description: "User login", Protected: false},
|
||||
{Method: "POST", Path: "/api/v1/auth/refresh", Description: "Refresh JWT token", Protected: false},
|
||||
{Method: "POST", Path: "/api/v1/auth/logout", Description: "Logout", Protected: false},
|
||||
|
||||
// Profile routes
|
||||
{Method: "GET", Path: "/api/v1/me", Description: "Get current user profile", Protected: true},
|
||||
{Method: "PUT", Path: "/api/v1/me", Description: "Update user profile", Protected: true},
|
||||
{Method: "DELETE", Path: "/api/v1/me", Description: "Delete user account", Protected: true},
|
||||
|
||||
// Dashboard
|
||||
{Method: "GET", Path: "/api/v1/dashboard", Description: "Get dashboard data", Protected: true},
|
||||
|
||||
// Collections
|
||||
{Method: "POST", Path: "/api/v1/collections", Description: "Create collection", Protected: true},
|
||||
{Method: "GET", Path: "/api/v1/collections", Description: "List collections", Protected: true},
|
||||
{Method: "GET", Path: "/api/v1/collections/{id}", Description: "Get collection", Protected: true},
|
||||
{Method: "PUT", Path: "/api/v1/collections/{id}", Description: "Update collection", Protected: true},
|
||||
{Method: "DELETE", Path: "/api/v1/collections/{id}", Description: "Delete collection", Protected: true},
|
||||
|
||||
// Files
|
||||
{Method: "POST", Path: "/api/v1/files/pending", Description: "Create pending file", Protected: true},
|
||||
{Method: "POST", Path: "/api/v1/files/{id}/complete", Description: "Complete upload", Protected: true},
|
||||
{Method: "GET", Path: "/api/v1/files/{id}", Description: "Get file", Protected: true},
|
||||
{Method: "PUT", Path: "/api/v1/files/{id}", Description: "Update file", Protected: true},
|
||||
{Method: "DELETE", Path: "/api/v1/files/{id}", Description: "Delete file", Protected: true},
|
||||
|
||||
// ... (More routes will be registered in Phase 6)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue