diff --git a/internal/api/api.go b/internal/api/api.go index 7861d03..592bc7b 100644 --- a/internal/api/api.go +++ b/internal/api/api.go @@ -7,6 +7,6 @@ import ( func Register(cfg *types.StereoConfig) { api := cfg.Router.Group("/api") - routes.RegisterUploadRoutes(cfg, api) + routes.RegisterFileRoutes(cfg, api) routes.RegisterAuthRoutes(cfg, api) } diff --git a/internal/api/routes/upload.go b/internal/api/routes/files.go similarity index 76% rename from internal/api/routes/upload.go rename to internal/api/routes/files.go index e55ee52..0471632 100644 --- a/internal/api/routes/upload.go +++ b/internal/api/routes/files.go @@ -11,7 +11,7 @@ import ( "stereo.cat/backend/internal/types" ) -func RegisterUploadRoutes(cfg *types.StereoConfig, api *gin.RouterGroup) { +func RegisterFileRoutes(cfg *types.StereoConfig, api *gin.RouterGroup) { api.POST("/upload", auth.JwtMiddleware(cfg.JWTSecret), func(c *gin.Context) { claims := c.MustGet("claims").(jwt.MapClaims) user := claims["user"].(auth.User) @@ -60,4 +60,17 @@ func RegisterUploadRoutes(cfg *types.StereoConfig, api *gin.RouterGroup) { path := filepath.Join(cfg.ImagePath, name) c.File(path) }) + + api.GET("/list", auth.JwtMiddleware(cfg.JWTSecret), func(c *gin.Context) { + claims := c.MustGet("claims").(jwt.MapClaims) + user := claims["user"].(auth.User) + + var files []types.File + if err := cfg.Database.Where("owner = ?", user.ID).Find(&files).Error; err != nil { + c.JSON(500, gin.H{"error": "failed to retrieve files"}) + return + } + + c.JSON(200, files) + }) } diff --git a/main.go b/main.go index 6059919..54351ce 100644 --- a/main.go +++ b/main.go @@ -86,6 +86,6 @@ func main() { c.Database.AutoMigrate(&auth.User{}, &types.File{}) api.Register(&c) - + fmt.Printf("Running on port %s\n", getEnv("PORT", "8080")) c.Router.Run() }