mirror of
https://github.com/mudler/LocalAI.git
synced 2025-05-27 22:15:00 +00:00
80 lines
1.8 KiB
Go
80 lines
1.8 KiB
Go
package routes
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"github.com/mudler/edgevpn/pkg/node"
|
|
)
|
|
|
|
const DefaultInterval = 5 * time.Second
|
|
const Timeout = 20 * time.Second
|
|
|
|
// TODO connect routes and write a middleware for authorization based on p2p auth providers private keys
|
|
func RegisterPeerguardAuthRoutes(app *fiber.App, e *node.Node) {
|
|
app.Get("ledger/:bucket/:key", func(c *fiber.Ctx) error {
|
|
bucket := c.Params("bucket")
|
|
key := c.Params("key")
|
|
|
|
ledger, err := e.Ledger()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return c.JSON(ledger.CurrentData()[bucket][key])
|
|
})
|
|
|
|
app.Get("ledger/:bucket", func(c *fiber.Ctx) error {
|
|
bucket := c.Params("bucket")
|
|
|
|
ledger, err := e.Ledger()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return c.JSON(ledger.CurrentData()[bucket])
|
|
})
|
|
|
|
announcing := struct{ State string }{"Announcing"}
|
|
|
|
// Store arbitrary data
|
|
app.Get("ledger/:bucket/:key/:value", func(c *fiber.Ctx) error {
|
|
bucket := c.Params("bucket")
|
|
key := c.Params("key")
|
|
value := c.Params("value")
|
|
|
|
ledger, err := e.Ledger()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
ledger.Persist(context.Background(), DefaultInterval, Timeout, bucket, key, value)
|
|
return c.JSON(announcing)
|
|
})
|
|
// Delete data from ledger
|
|
app.Get("ledger/:bucket", func(c *fiber.Ctx) error {
|
|
bucket := c.Params("bucket")
|
|
|
|
ledger, err := e.Ledger()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
ledger.AnnounceDeleteBucket(context.Background(), DefaultInterval, Timeout, bucket)
|
|
return c.JSON(announcing)
|
|
})
|
|
|
|
app.Get("ledger/:bucket/:key", func(c *fiber.Ctx) error {
|
|
bucket := c.Params("bucket")
|
|
key := c.Params("key")
|
|
|
|
ledger, err := e.Ledger()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
ledger.AnnounceDeleteBucketKey(context.Background(), DefaultInterval, Timeout, bucket, key)
|
|
return c.JSON(announcing)
|
|
})
|
|
}
|