[admin] Add events
This commit is contained in:
parent
863070c037
commit
b6782962f1
5 changed files with 187 additions and 1 deletions
|
@ -1,6 +1,8 @@
|
|||
package api
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"srs.epita.fr/fic-server/libfic"
|
||||
|
||||
"github.com/julienschmidt/httprouter"
|
||||
|
@ -8,6 +10,13 @@ import (
|
|||
|
||||
func init() {
|
||||
router.GET("/api/events/", apiHandler(getEvents))
|
||||
router.GET("/api/events.json", apiHandler(getLastEvents))
|
||||
router.POST("/api/events/", apiHandler(newEvent))
|
||||
router.DELETE("/api/events/", apiHandler(clearEvents))
|
||||
|
||||
router.GET("/api/events/:evid", apiHandler(eventHandler(showEvent)))
|
||||
router.PUT("/api/events/:evid", apiHandler(eventHandler(updateEvent)))
|
||||
router.DELETE("/api/events/:evid", apiHandler(eventHandler(deleteEvent)))
|
||||
}
|
||||
|
||||
func getEvents(_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
|
@ -17,3 +26,51 @@ func getEvents(_ httprouter.Params, _ []byte) (interface{}, error) {
|
|||
return evts, nil
|
||||
}
|
||||
}
|
||||
|
||||
func getLastEvents(_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
if evts, err := fic.GetLastEvents(); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return evts, nil
|
||||
}
|
||||
}
|
||||
|
||||
func showEvent(event fic.Event, _ []byte) (interface{}, error) {
|
||||
return event, nil
|
||||
}
|
||||
|
||||
func newEvent(_ httprouter.Params, body []byte) (interface{}, error) {
|
||||
var ue fic.Event
|
||||
if err := json.Unmarshal(body, &ue); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if event, err := fic.NewEvent(ue.Text, ue.Kind); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return event, nil
|
||||
}
|
||||
}
|
||||
|
||||
func clearEvents(_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
return fic.ClearEvents()
|
||||
}
|
||||
|
||||
func updateEvent(event fic.Event, body []byte) (interface{}, error) {
|
||||
var ue fic.Event
|
||||
if err := json.Unmarshal(body, &ue); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ue.Id = event.Id
|
||||
|
||||
if _, err := ue.Update(); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return ue, nil
|
||||
}
|
||||
}
|
||||
|
||||
func deleteEvent(event fic.Event, _ []byte) (interface{}, error) {
|
||||
return event.Delete()
|
||||
}
|
||||
|
|
Reference in a new issue