Add: get reviews and fix bug

This commit is contained in:
2021-12-13 04:47:00 +08:00
parent 6b8bfedb9b
commit 12739be2f5
6 changed files with 151 additions and 10 deletions

View File

@@ -94,6 +94,7 @@ func NewAPI(config Config) (*API, error) {
apiMux.HandleFunc("/update_foldername", api.HandleUpdateFoldername)
// review
apiMux.HandleFunc("/insert_review", api.HandleInsertReview)
apiMux.HandleFunc("/get_reviews_on_file", api.HandleGetReviewsOnFile)
// below needs token
apiMux.HandleFunc("/walk", api.HandleWalk)
apiMux.HandleFunc("/reset", api.HandleReset)

View File

@@ -1,9 +1,9 @@
package api
import (
"net/http"
"msw-open-music/pkg/database"
"encoding/json"
"msw-open-music/pkg/database"
"net/http"
"time"
)
@@ -17,13 +17,6 @@ func (api *API) HandleInsertReview(w http.ResponseWriter, r *http.Request) {
return
}
// check not anonymous
err = api.CheckNotAnonymous(w, r)
if err != nil {
api.HandleError(w, r, err)
return
}
review.UserId, err = api.GetUserID(w, r)
if err != nil {
api.HandleError(w, r, err)
@@ -40,3 +33,37 @@ func (api *API) HandleInsertReview(w http.ResponseWriter, r *http.Request) {
api.HandleOK(w, r)
}
type GetReviewsOnFileRequest struct {
ID int64 `json:"id"`
}
type GetReviewsOnFileResponse struct {
Reviews []*database.Review `json:"reviews"`
}
func (api *API) HandleGetReviewsOnFile(w http.ResponseWriter, r *http.Request) {
req := &GetReviewsOnFileRequest{}
err := json.NewDecoder(r.Body).Decode(req)
if err != nil {
api.HandleError(w, r, err)
return
}
reviews, err := api.Db.GetReviewsOnFile(req.ID)
if err != nil {
api.HandleError(w, r, err)
return
}
resp := &GetReviewsOnFileResponse{
Reviews: reviews,
}
err = json.NewEncoder(w).Encode(resp)
if err != nil {
api.HandleError(w, r, err)
return
}
}