server/admin/api/file.go

51 lines
1.1 KiB
Go

package api
import (
"encoding/json"
"srs.epita.fr/fic-server/libfic"
"github.com/julienschmidt/httprouter"
)
func init() {
router.GET("/api/files/", apiHandler(listFiles))
router.DELETE("/api/files/", apiHandler(clearFiles))
router.GET("/api/files/:fileid", apiHandler(fileHandler(showFile)))
router.PUT("/api/files/:fileid", apiHandler(fileHandler(updateFile)))
router.DELETE("/api/files/:fileid", apiHandler(fileHandler(deleteFile)))
}
func listFiles(_ httprouter.Params, body []byte) (interface{}, error) {
// List all files
return fic.GetFiles()
}
func clearFiles(_ httprouter.Params, _ []byte) (interface{}, error) {
return fic.ClearFiles()
}
func showFile(file fic.EFile, _ []byte) (interface{}, error) {
return file, nil
}
func updateFile(file fic.EFile, body []byte) (interface{}, error) {
var uf fic.EFile
if err := json.Unmarshal(body, &uf); err != nil {
return nil, err
}
uf.Id = file.Id
if _, err := uf.Update(); err != nil {
return nil, err
} else {
return uf, nil
}
}
func deleteFile(file fic.EFile, _ []byte) (interface{}, error) {
return file.Delete()
}