diff --git a/api/check.go b/api/check.go
index 14fe77c..92e1c73 100644
--- a/api/check.go
+++ b/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
diff --git a/api/item.go b/api/item.go
index 1c9b2f0..378d202 100644
--- a/api/item.go
+++ b/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 {
diff --git a/api/room.go b/api/room.go
index e9ce5d5..e23b03a 100644
--- a/api/room.go
+++ b/api/room.go
@@ -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()
}))
diff --git a/api/tag.go b/api/tag.go
index 48b1435..e40a2a5 100644
--- a/api/tag.go
+++ b/api/tag.go
@@ -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
diff --git a/api/user.go b/api/user.go
index 5aecae3..6341c16 100644
--- a/api/user.go
+++ b/api/user.go
@@ -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()
}))
diff --git a/static/index.html b/static/index.html
index 96c902b..6919793 100644
--- a/static/index.html
+++ b/static/index.html
@@ -2,18 +2,36 @@
+
+
Terrasses de la Bièvre - remise des clefs
-