Add file management API with local storage backend
- Implement FileHandler with CRUD operations for files/directories - Add FileService with business logic and SHA-256 hashing - Create LocalStorage backend for filesystem persistence - Add database repository with pagination and name uniqueness constraints - Configure max upload size in storage settings - Include comprehensive tests for all layers
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
func setupProtectedRoutes(rg *gin.RouterGroup, webApp *app.WebApp) {
|
||||
jwtSecret := []byte(webApp.Config.JWT.Secret)
|
||||
accountHandler := handler.NewAccountHandler(webApp.AuthService)
|
||||
fileHandler := handler.NewFileHandler(webApp.FileService)
|
||||
|
||||
rg.Use(middleware.AuthRequired(jwtSecret))
|
||||
|
||||
@@ -25,4 +26,14 @@ func setupProtectedRoutes(rg *gin.RouterGroup, webApp *app.WebApp) {
|
||||
passkeys.DELETE("/:id", accountHandler.RevokePasskey)
|
||||
}
|
||||
}
|
||||
|
||||
files := rg.Group("/files")
|
||||
{
|
||||
files.GET("", fileHandler.List)
|
||||
files.POST("", fileHandler.Upload)
|
||||
files.GET("/:id", fileHandler.Get)
|
||||
files.GET("/:id/content", fileHandler.Download)
|
||||
files.PUT("/:id", fileHandler.Update)
|
||||
files.DELETE("/:id", fileHandler.Delete)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user