Add resource service #19

Merged
blek merged 13 commits from resource-service into 0.2-dev 2023-11-11 09:09:48 +01:00
1 changed files with 25 additions and 7 deletions
Showing only changes of commit 264d3595b6 - Show all commits

View File

@ -1,7 +1,6 @@
package main package main
import ( import (
"fmt"
"log" "log"
"io/ioutil" "io/ioutil"
) )
@ -15,6 +14,9 @@ type Resource struct {
Url string `toml:"url"` Url string `toml:"url"`
Mime string `toml:"mime"` Mime string `toml:"mime"`
} }
func (self Resource) Get() ([]byte, error) {
return ioutil.ReadFile(self.Url[7:])
}
type ResourceDConfig struct { type ResourceDConfig struct {
Enabled bool `toml:"enabled"` Enabled bool `toml:"enabled"`
@ -36,20 +38,36 @@ func main() {
if err != nil { panic(err) } if err != nil { panic(err) }
_ = a _ = a
app := fiber.New() app := fiber.New(fiber.Config {
Prefork: true,
CaseSensitive: false,
StrictRouting: true,
ServerHeader: "",
AppName: "blek! File resourceD",
})
app.Use(func (c *fiber.Ctx) error {
if ! conf.ResourceD.Enabled {
return c.Status(fiber.StatusNotFound).SendString("ResourceD is disabled")
}
return c.Next()
})
app.Get("/:id", func (c *fiber.Ctx) error { app.Get("/:id", func (c *fiber.Ctx) error {
if ! conf.ResourceD.Enabled {
return c.Status(fiber.StatusNotFound).SendString("Resource not found")
}
res, exists := conf.Resource[c.Params("id")] res, exists := conf.Resource[c.Params("id")]
if ! exists { if ! exists {
return c.Status(fiber.StatusNotFound).SendString("Resource not found") return c.Status(fiber.StatusNotFound).SendString("Resource not found")
} }
return c.SendString(fmt.Sprintf("Id: %s\nUrl: %s\nType: %s", c.Params("id"), res.Url, res.Mime)) data, err := res.Get()
if err != nil {
panic(err)
}
c.Response().Header.SetContentType(res.Mime)
c.Response().Header.SetContentLength(len(data))
return c.Send(data)
}) })
log.Fatal(app.Listen(conf.ResourceD.ListenURL)) log.Fatal(app.Listen(conf.ResourceD.ListenURL))