done. ready!
This commit is contained in:
parent
a517a2201f
commit
b3abc0d434
12 changed files with 326 additions and 111 deletions
13
api/check.go
13
api/check.go
|
|
@ -11,14 +11,17 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
router.GET("/api/checks/", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
router.GET("/api/checks", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
return ckh.GetChecks()
|
||||
}))
|
||||
router.DELETE("/api/checks", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
return ckh.ClearChecks()
|
||||
}))
|
||||
|
||||
router.GET("/api/items/:iid/checks/", apiHandler(itemHandler(func (item ckh.Item, _ []byte) (interface{}, error) {
|
||||
router.GET("/api/items/:iid/checks", apiHandler(itemHandler(func (item ckh.Item, _ []byte) (interface{}, error) {
|
||||
return item.GetChecks()
|
||||
})))
|
||||
router.POST("/api/items/:iid/checks/", apiHandler(itemHandler(newCheck)))
|
||||
router.POST("/api/items/:iid/checks", apiHandler(itemHandler(newCheck)))
|
||||
|
||||
router.GET("/api/items/:iid/checks/:cid", apiHandler(checkHandler(func (check ckh.Check, _ ckh.Item, _ []byte) (interface{}, error) {
|
||||
return check, nil
|
||||
|
|
@ -29,10 +32,10 @@ func init() {
|
|||
})))
|
||||
|
||||
// in room
|
||||
router.GET("/api/rooms/:rid/items/:iid/checks/", apiHandler(itemInRoomHandler(func (item ckh.Item, _ ckh.Room, _ []byte) (interface{}, error) {
|
||||
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.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
|
||||
|
|
|
|||
54
api/item.go
54
api/item.go
|
|
@ -11,30 +11,64 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
router.GET("/api/items/", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
router.GET("/api/items", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
return ckh.GetItems()
|
||||
}))
|
||||
router.DELETE("/api/items/", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
router.DELETE("/api/items", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
return ckh.ClearItems()
|
||||
}))
|
||||
|
||||
router.GET("/api/rooms/:rid/items/", apiHandler(roomHandler(func (room ckh.Room, _ []byte) (interface{}, error) {
|
||||
return room.GetItems()
|
||||
router.GET("/api/rooms/:rid/items", apiHandler(roomHandler(func (room ckh.Room, _ []byte) (interface{}, error) {
|
||||
if items, err := room.GetItems(); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
var res []item
|
||||
for _, item := range items {
|
||||
if i, err := displayItem(item); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
res = append(res, i)
|
||||
}
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
})))
|
||||
router.POST("/api/rooms/:rid/items/", apiHandler(roomHandler(newItem)))
|
||||
router.DELETE("/api/rooms/:rid/items/", apiHandler(roomHandler(func (room ckh.Room, _ []byte) (interface{}, error) {
|
||||
router.POST("/api/rooms/:rid/items", apiHandler(roomHandler(newItem)))
|
||||
router.DELETE("/api/rooms/:rid/items", apiHandler(roomHandler(func (room ckh.Room, _ []byte) (interface{}, error) {
|
||||
return room.ClearItems()
|
||||
})))
|
||||
|
||||
router.GET("/api/rooms/:rid/items/:iid/", apiHandler(itemInRoomHandler(func (item ckh.Item, _ ckh.Room, _ []byte) (interface{}, error) {
|
||||
return item, nil
|
||||
router.GET("/api/rooms/:rid/items/:iid", apiHandler(itemInRoomHandler(func (item ckh.Item, _ ckh.Room, _ []byte) (interface{}, error) {
|
||||
return displayItem(item)
|
||||
})))
|
||||
router.PUT("/api/rooms/:rid/items/:iid/", apiHandler(itemInRoomHandler(updateItem)))
|
||||
router.DELETE("/api/rooms/:rid/items/:iid/", apiHandler(itemInRoomHandler(func (item ckh.Item, _ ckh.Room, _ []byte) (interface{}, error) {
|
||||
router.PUT("/api/rooms/:rid/items/:iid", apiHandler(itemInRoomHandler(updateItem)))
|
||||
router.DELETE("/api/rooms/:rid/items/:iid", apiHandler(itemInRoomHandler(func (item ckh.Item, _ ckh.Room, _ []byte) (interface{}, error) {
|
||||
return item.Delete()
|
||||
})))
|
||||
}
|
||||
|
||||
type item struct {
|
||||
Id int64 `json:"id"`
|
||||
Label string `json:"label"`
|
||||
Description string `json:"description"`
|
||||
Tags []string `json:"tags"`
|
||||
}
|
||||
|
||||
func displayItem(item ckh.Item) (i item, err error) {
|
||||
var tags []ckh.Tag
|
||||
if tags, err = item.GetTags(); err != nil {
|
||||
return
|
||||
} else {
|
||||
for _, t := range tags {
|
||||
i.Tags = append(i.Tags, t.Label)
|
||||
}
|
||||
}
|
||||
i.Id = item.Id
|
||||
i.Label = item.Label
|
||||
i.Description = item.Description
|
||||
return
|
||||
}
|
||||
|
||||
func itemHandler(f func(ckh.Item, []byte) (interface{}, error)) func(httprouter.Params, []byte) (interface{}, error) {
|
||||
return func(ps httprouter.Params, body []byte) (interface{}, error) {
|
||||
if iid, err := strconv.ParseInt(string(ps.ByName("iid")), 10, 64); err != nil {
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
router.GET("/api/rooms/", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
router.GET("/api/rooms", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
return ckh.GetRooms()
|
||||
}))
|
||||
router.POST("/api/rooms/", apiHandler(newRoom))
|
||||
router.DELETE("/api/rooms/", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
router.POST("/api/rooms", apiHandler(newRoom))
|
||||
router.DELETE("/api/rooms", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
return ckh.ClearRooms()
|
||||
}))
|
||||
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
router.GET("/api/tags/", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
router.GET("/api/tags", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
return ckh.GetTags()
|
||||
}))
|
||||
router.POST("/api/tags/", apiHandler(newTag))
|
||||
router.DELETE("/api/tags/", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
router.POST("/api/tags", apiHandler(newTag))
|
||||
router.DELETE("/api/tags", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
return ckh.ClearTags()
|
||||
}))
|
||||
|
||||
|
|
@ -35,6 +35,9 @@ func init() {
|
|||
router.GET("/api/items/:iid/tags", apiHandler(itemHandler(func (item ckh.Item, _ []byte) (interface{}, error) {
|
||||
return item.GetTags()
|
||||
})))
|
||||
router.DELETE("/api/items/:iid/tags", apiHandler(itemHandler(func (item ckh.Item, _ []byte) (interface{}, error) {
|
||||
return item.ClearItemTags()
|
||||
})))
|
||||
router.PUT("/api/items/:iid/tags/:tid", apiHandler(itemTagHandler(func (item ckh.Item, tag ckh.Tag, _ []byte) (interface{}, error) {
|
||||
_, err := tag.AddItem(item)
|
||||
return tag, err
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
router.GET("/api/users/", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
router.GET("/api/users", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
return ckh.GetUsers()
|
||||
}))
|
||||
router.POST("/api/users/", apiHandler(newUser))
|
||||
router.DELETE("/api/users/", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
router.POST("/api/users", apiHandler(newUser))
|
||||
router.DELETE("/api/users", apiHandler(func (_ httprouter.Params, _ []byte) (interface{}, error) {
|
||||
return ckh.ClearUsers()
|
||||
}))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue