wip1
This commit is contained in:
parent
977a75819d
commit
f25068075c
7 changed files with 113 additions and 22 deletions
52
api/check.go
52
api/check.go
|
|
@ -15,35 +15,63 @@ func init() {
|
|||
return ckh.GetChecks()
|
||||
}))
|
||||
|
||||
router.GET("/api/rooms/:rid/items/:iid/checks/", apiHandler(itemHandler(func (item ckh.Item, _ ckh.Room, _ []byte) (interface{}, error) {
|
||||
router.GET("/api/items/:iid/checks/", apiHandler(itemHandler(func (item ckh.Item, _ []byte) (interface{}, error) {
|
||||
return item.GetChecks()
|
||||
})))
|
||||
router.POST("/api/rooms/:rid/items/:iid/checks/", apiHandler(itemHandler(newCheck)))
|
||||
router.POST("/api/items/:iid/checks/", apiHandler(itemHandler(newCheck)))
|
||||
|
||||
router.GET("/api/rooms/:rid/items/:iid/checks/:cid", apiHandler(checkHandler(func (check ckh.Check, _ ckh.Item, _ ckh.Room, _ []byte) (interface{}, error) {
|
||||
router.GET("/api/items/:iid/checks/:cid", apiHandler(checkHandler(func (check ckh.Check, _ ckh.Item, _ []byte) (interface{}, error) {
|
||||
return check, nil
|
||||
})))
|
||||
router.PUT("/api/rooms/:rid/items/:iid/checks/:cid", apiHandler(checkHandler(updateCheck)))
|
||||
router.DELETE("/api/rooms/:rid/items/:iid/checks/:cid", apiHandler(checkHandler(func (check ckh.Check, _ ckh.Item, _ ckh.Room, _ []byte) (interface{}, error) {
|
||||
router.PUT("/api/items/:iid/checks/:cid", apiHandler(checkHandler(updateCheck)))
|
||||
router.DELETE("/api/items/:iid/checks/:cid", apiHandler(checkHandler(func (check ckh.Check, _ ckh.Item, _ []byte) (interface{}, error) {
|
||||
return check.Delete()
|
||||
})))
|
||||
|
||||
// in room
|
||||
router.GET("/api/rooms/:rid/items/:iid/checks/", apiHandler(itemInRoomHandler(func (item ckh.Item, _ ckh.Room, _ []byte) (interface{}, error) {
|
||||
return item.GetChecks()
|
||||
})))
|
||||
router.POST("/api/rooms/:rid/items/:iid/checks/", apiHandler(itemInRoomHandler(newCheckInRoom)))
|
||||
|
||||
router.GET("/api/rooms/:rid/items/:iid/checks/:cid", apiHandler(checkInRoomHandler(func (check ckh.Check, _ ckh.Item, _ []byte) (interface{}, error) {
|
||||
return check, nil
|
||||
})))
|
||||
router.PUT("/api/rooms/:rid/items/:iid/checks/:cid", apiHandler(checkInRoomHandler(updateCheck)))
|
||||
router.DELETE("/api/rooms/:rid/items/:iid/checks/:cid", apiHandler(checkInRoomHandler(func (check ckh.Check, _ ckh.Item, _ []byte) (interface{}, error) {
|
||||
return check.Delete()
|
||||
})))
|
||||
}
|
||||
|
||||
func checkHandler(f func(ckh.Check, ckh.Item, ckh.Room, []byte) (interface{}, error)) func(httprouter.Params, []byte) (interface{}, error) {
|
||||
func checkHandler(f func(ckh.Check, ckh.Item, []byte) (interface{}, error)) func(httprouter.Params, []byte) (interface{}, error) {
|
||||
return func(ps httprouter.Params, body []byte) (interface{}, error) {
|
||||
return itemHandler(func (item ckh.Item, room ckh.Room, _ []byte) (interface{}, error) {
|
||||
return itemHandler(func (item ckh.Item, _ []byte) (interface{}, error) {
|
||||
if cid, err := strconv.ParseInt(string(ps.ByName("cid")), 10, 64); err != nil {
|
||||
return nil, err
|
||||
} else if check, err := item.GetCheck(cid); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return f(check, item, room, body)
|
||||
return f(check, item, body)
|
||||
}
|
||||
})(ps, body)
|
||||
}
|
||||
}
|
||||
|
||||
func newCheck(item ckh.Item, _ ckh.Room, body []byte) (interface{}, error) {
|
||||
func checkInRoomHandler(f func(ckh.Check, ckh.Item, []byte) (interface{}, error)) func(httprouter.Params, []byte) (interface{}, error) {
|
||||
return func(ps httprouter.Params, body []byte) (interface{}, error) {
|
||||
return itemInRoomHandler(func (item ckh.Item, room ckh.Room, _ []byte) (interface{}, error) {
|
||||
if cid, err := strconv.ParseInt(string(ps.ByName("cid")), 10, 64); err != nil {
|
||||
return nil, err
|
||||
} else if check, err := item.GetCheck(cid); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return f(check, item, body)
|
||||
}
|
||||
})(ps, body)
|
||||
}
|
||||
}
|
||||
|
||||
func newCheck(item ckh.Item, body []byte) (interface{}, error) {
|
||||
var uc ckh.Check
|
||||
if err := json.Unmarshal(body, &uc); err != nil {
|
||||
return nil, err
|
||||
|
|
@ -56,7 +84,11 @@ func newCheck(item ckh.Item, _ ckh.Room, body []byte) (interface{}, error) {
|
|||
return item.NewCheck(ckh.User{}, uc.Passed, uc.Comment)
|
||||
}
|
||||
|
||||
func updateCheck(check ckh.Check, _ ckh.Item, _ ckh.Room, body []byte) (interface{}, error) {
|
||||
func newCheckInRoom(item ckh.Item, _ ckh.Room, body []byte) (interface{}, error) {
|
||||
return newCheck(item, body)
|
||||
}
|
||||
|
||||
func updateCheck(check ckh.Check, _ ckh.Item, body []byte) (interface{}, error) {
|
||||
var uc ckh.Check
|
||||
if err := json.Unmarshal(body, &uc); err != nil {
|
||||
return nil, err
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue