diff --git a/resource/main.go b/resource/main.go index 67031fe..b219a00 100644 --- a/resource/main.go +++ b/resource/main.go @@ -7,6 +7,7 @@ import ( "strings" "net/http" "io/ioutil" + "encoding/json" ) import ( @@ -20,6 +21,9 @@ type Resource struct { Proxied bool `toml:"proxied",default:false` Mime string `toml:"mime"` } +type CheckResourceType struct { + Type string `json:"type"` +} func (self Resource) Get() ([]byte, error) { return ioutil.ReadFile(self.Url[7:]) } @@ -115,6 +119,34 @@ func main() { } return c.Next() }) + app.Post("/internal/check_resource", func (c *fiber.Ctx) error { + + resources := new([]string) + err := json.Unmarshal(c.Body(), &resources) + + if err != nil { + log.Fatalln(err) + return c.Send([]byte("{ \"error\": \"500\"}")) + } + + resources_exist := make(map[string]CheckResourceType) + + for _, resource := range *resources { + if val, ok := conf.Resource[resource]; ok { + resources_exist[resource] = CheckResourceType { + Type: val.Mime, + } + } + } + + marshaled, err := json.Marshal(resources_exist) + if err != nil { + log.Fatalln(err) + return c.Send([]byte("{ \"error\": \"500\"}")) + } + + return c.Send([]byte(marshaled)) + }) app.Get("/:id", func (c *fiber.Ctx) error { res, exists := conf.Resource[c.Params("id")]