diff --git a/main.go b/main.go index dee23d1..16f305c 100644 --- a/main.go +++ b/main.go @@ -43,27 +43,30 @@ func main() { r.HandleFunc("/api/sessions/{id}", routers.SessionsItemPatch).Methods("PATCH") r.HandleFunc("/api/sessions/{id}", routers.SessionsItemDelete).Methods("DELETE") - r.HandleFunc("/api/users", routers.UsersGet).Methods("GET") // 获取用户列表 - r.HandleFunc("/api/users", routers.UsersPost).Methods("POST") // 创建一条用户 - r.HandleFunc("/api/users/{id}", routers.UsersItemGet).Methods("GET") // 获取一条用户 - r.HandleFunc("/api/users/{id}", routers.UsersItemPatch).Methods("PATCH") // 更新一条用户 - r.HandleFunc("/api/users/{id}", routers.UsersItemDelete).Methods("DELETE") // 删除一条用户 - r.HandleFunc("/api/users/{id}/like", routers.UsersItemLike).Methods("POST") // 添加一条喜欢 + r.HandleFunc("/api/users", routers.UsersGet).Methods("GET") // 获取用户列表 + r.HandleFunc("/api/users", routers.UsersPost).Methods("POST") // 创建一条用户 + r.HandleFunc("/api/users/{id}", routers.UsersItemGet).Methods("GET") // 获取一条用户 + r.HandleFunc("/api/users/{id}", routers.UsersItemPatch).Methods("PATCH") // 更新一条用户 + r.HandleFunc("/api/users/{id}", routers.UsersItemDelete).Methods("DELETE") // 删除一条用户 + r.HandleFunc("/api/users/{id}/like", routers.UsersItemLike).Methods("POST") // 添加一条喜欢 + r.HandleFunc("/api/users/{id}/like", routers.UsersItemUnlike).Methods("DELETE") // 移除一条喜欢 - r.HandleFunc("/api/models", routers.ModelsGet).Methods("GET") // 获取模型列表 - r.HandleFunc("/api/models", routers.ModelsPost).Methods("POST") // 创建一条模型 - r.HandleFunc("/api/models/update", routers.ModelsUpdate).Methods("GET") // 更新模型列表 - r.HandleFunc("/api/models/{id}", routers.ModelItemGet).Methods("GET") // 获取一条模型 - r.HandleFunc("/api/models/{id}", routers.ModelItemPatch).Methods("PATCH") // 更新一条模型 - r.HandleFunc("/api/models/{id}", routers.ModelItemDelete).Methods("DELETE") // 删除一条模型 - r.HandleFunc("/api/models/{id}/like", routers.ModelsItemLike).Methods("POST") // 添加一条喜欢 + r.HandleFunc("/api/models", routers.ModelsGet).Methods("GET") // 获取模型列表 + r.HandleFunc("/api/models", routers.ModelsPost).Methods("POST") // 创建一条模型 + r.HandleFunc("/api/models/update", routers.ModelsUpdate).Methods("GET") // 更新模型列表 + r.HandleFunc("/api/models/{id}", routers.ModelItemGet).Methods("GET") // 获取一条模型 + r.HandleFunc("/api/models/{id}", routers.ModelItemPatch).Methods("PATCH") // 更新一条模型 + r.HandleFunc("/api/models/{id}", routers.ModelItemDelete).Methods("DELETE") // 删除一条模型 + r.HandleFunc("/api/models/{id}/like", routers.ModelsItemLike).Methods("POST") // 添加一条喜欢 + r.HandleFunc("/api/models/{id}/like", routers.ModelsItemUnlike).Methods("DELETE") // 移除一条喜欢 - r.HandleFunc("/api/images", routers.ImagesGet).Methods("GET") // 获取图片列表 - r.HandleFunc("/api/images", routers.ImagesPost).Methods("POST") // 创建一条图片 - r.HandleFunc("/api/images/{id}", routers.ImagesItemGet).Methods("GET") // 获取一条图片 - r.HandleFunc("/api/images/{id}", routers.ImagesItemPatch).Methods("PATCH") // 更新一条图片 - r.HandleFunc("/api/images/{id}", routers.ImagesItemDelete).Methods("DELETE") // 删除一条图片 - r.HandleFunc("/api/images/{id}/like", routers.ImagesItemLike).Methods("POST") // 添加一条喜欢 + r.HandleFunc("/api/images", routers.ImagesGet).Methods("GET") // 获取图片列表 + r.HandleFunc("/api/images", routers.ImagesPost).Methods("POST") // 创建一条图片 + r.HandleFunc("/api/images/{id}", routers.ImagesItemGet).Methods("GET") // 获取一条图片 + r.HandleFunc("/api/images/{id}", routers.ImagesItemPatch).Methods("PATCH") // 更新一条图片 + r.HandleFunc("/api/images/{id}", routers.ImagesItemDelete).Methods("DELETE") // 删除一条图片 + r.HandleFunc("/api/images/{id}/like", routers.ImagesItemLike).Methods("POST") // 添加一条喜欢 + r.HandleFunc("/api/images/{id}/like", routers.ImagesItemUnlike).Methods("DELETE") // 移除一条喜欢 r.HandleFunc("/api/tasks", routers.TasksGet).Methods("GET") r.HandleFunc("/api/tasks", routers.TasksPost).Methods("POST") diff --git a/routers/images.go b/routers/images.go index 626926e..0789982 100644 --- a/routers/images.go +++ b/routers/images.go @@ -311,3 +311,11 @@ func ImagesItemLike(w http.ResponseWriter, r *http.Request) { w.Write([]byte("ok")) }) } + +// 移除一条喜欢 +func ImagesItemUnlike(w http.ResponseWriter, r *http.Request) { + models.AccountRead(w, r, func(account *models.Account) { + models.LikeImage.Remove(strconv.Itoa(account.ID), mux.Vars(r)["id"]) + w.Write([]byte("ok")) + }) +} diff --git a/routers/models.go b/routers/models.go index 24a52af..ec35c9a 100644 --- a/routers/models.go +++ b/routers/models.go @@ -307,3 +307,11 @@ func ModelsItemLike(w http.ResponseWriter, r *http.Request) { w.Write([]byte("ok")) }) } + +// 移除一条喜欢 +func ModelsItemUnlike(w http.ResponseWriter, r *http.Request) { + models.AccountRead(w, r, func(account *models.Account) { + models.LikeModel.Remove(strconv.Itoa(account.ID), mux.Vars(r)["id"]) + w.Write([]byte("ok")) + }) +} diff --git a/routers/users.go b/routers/users.go index bd8ccd9..cb2c8bb 100644 --- a/routers/users.go +++ b/routers/users.go @@ -173,3 +173,11 @@ func UsersItemLike(w http.ResponseWriter, r *http.Request) { w.Write([]byte("ok")) }) } + +// 移除一条喜欢 +func UsersItemUnlike(w http.ResponseWriter, r *http.Request) { + models.AccountRead(w, r, func(account *models.Account) { + models.LikeUser.Remove(strconv.Itoa(account.ID), mux.Vars(r)["id"]) + w.Write([]byte("ok")) + }) +}