Files
bamort/backend/importer/routes.go
T
2026-02-27 12:00:40 +01:00

41 lines
1.2 KiB
Go

package importer
import (
"time"
"github.com/gin-gonic/gin"
)
// RegisterRoutes registers all import/export API endpoints
// Following the plan: POST /detect, POST /import, GET /adapters, GET /history, etc.
func RegisterRoutes(r *gin.RouterGroup) {
// Rate limiters per endpoint as specified in the plan
detectLimiter := NewRateLimiter(10, time.Minute) // 10/min
importLimiter := NewRateLimiter(5, time.Minute) // 5/min
exportLimiter := NewRateLimiter(20, time.Minute) // 20/min
// File size limit (10MB as per plan)
maxFileSize := int64(10 << 20)
importer := r.Group("/import")
importer.Use(ValidateFileSizeMiddleware(maxFileSize))
// Format detection endpoint
importer.POST("/detect", detectLimiter.Middleware(), DetectHandler)
// Import character from external format
importer.POST("/import", importLimiter.Middleware(), ImportHandler)
// List registered adapters
importer.GET("/adapters", ListAdaptersHandler)
// Get user's import history
importer.GET("/history", ImportHistoryHandler)
// Get details for specific import
importer.GET("/history/:id", ImportDetailsHandler)
// Export character to external format
importer.POST("/export/:id", exportLimiter.Middleware(), ExportHandler)
}