Quasi finito
This commit is contained in:
+54
-4
@@ -22,9 +22,15 @@ func (r *Router) Api(api fiber.Router) {
|
||||
|
||||
return c.Next()
|
||||
}
|
||||
|
||||
isAPIKeyMiddleware := func(c *fiber.Ctx) error {
|
||||
if _, isAdmin := adminSessions[c.Cookies("sid")]; !isAdmin { // if admin continue
|
||||
if err := r.Database.CheckAPIKey(c.Cookies("token")); err != nil { // otherwise also check api token
|
||||
token := c.Cookies("token")
|
||||
if token == "" {
|
||||
return fmt.Errorf("no api token")
|
||||
}
|
||||
|
||||
if err := r.Database.CheckAPIKey(token); err != nil { // otherwise also check api token
|
||||
return err
|
||||
}
|
||||
}
|
||||
@@ -120,12 +126,12 @@ func (r *Router) Api(api fiber.Router) {
|
||||
return err
|
||||
}
|
||||
|
||||
opts := []any{}
|
||||
settings := &database.JsonBucketSettings{}
|
||||
if req.Path != "" {
|
||||
opts = append(opts, req.Path)
|
||||
settings.Path = req.Path
|
||||
}
|
||||
|
||||
if err := r.Database.CreateBucket(req.Bucket, opts...); err != nil {
|
||||
if err := r.Database.CreateBucket(req.Bucket, settings); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -145,6 +151,37 @@ func (r *Router) Api(api fiber.Router) {
|
||||
return c.JSON(objects)
|
||||
})
|
||||
|
||||
api.Get("/buckets/:bucket/settings",
|
||||
isAdminMiddleware,
|
||||
func(c *fiber.Ctx) error {
|
||||
bucket := c.Params("bucket")
|
||||
|
||||
settings, err := r.Database.GetBucketSettings(bucket)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return c.JSON(settings)
|
||||
})
|
||||
|
||||
api.Post("/buckets/:bucket/settings",
|
||||
isAdminMiddleware,
|
||||
func(c *fiber.Ctx) error {
|
||||
bucket := c.Params("bucket")
|
||||
|
||||
var settings *database.JsonBucketSettings
|
||||
|
||||
if err := c.BodyParser(&settings); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := r.Database.SetBucketSettings(bucket, settings); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return c.JSON("ok")
|
||||
})
|
||||
|
||||
api.Post("/buckets/:bucket",
|
||||
isAPIKeyMiddleware,
|
||||
func(c *fiber.Ctx) error {
|
||||
@@ -186,6 +223,19 @@ func (r *Router) Api(api fiber.Router) {
|
||||
return c.SendStream(buf)
|
||||
})
|
||||
|
||||
api.Delete("/buckets/:bucket/:id",
|
||||
isAPIKeyMiddleware,
|
||||
func(c *fiber.Ctx) error {
|
||||
bucket := c.Params("bucket")
|
||||
id := c.Params("id")
|
||||
|
||||
if err := r.Database.DeleteBucketObject(bucket, id); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return c.JSON("ok")
|
||||
})
|
||||
|
||||
//
|
||||
// API Keys
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user