Re-struct pkg/api, pkg/database

This commit is contained in:
2021-12-07 00:19:05 +08:00
parent 546385a484
commit 83f2b76cbc
25 changed files with 1350 additions and 1192 deletions

View File

@@ -0,0 +1,48 @@
package api
import (
"encoding/json"
"log"
"msw-open-music/pkg/database"
"net/http"
)
type SearchFilesRequest struct {
Filename string `json:"filename"`
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
}
type SearchFilesResponse struct {
Files []database.File `json:"files"`
}
func (api *API) HandleSearchFiles(w http.ResponseWriter, r *http.Request) {
searchFilesRequest := &SearchFilesRequest{}
err := json.NewDecoder(r.Body).Decode(searchFilesRequest)
if err != nil {
api.HandleError(w, r, err)
return
}
// check empty
if searchFilesRequest.Filename == "" {
api.HandleErrorString(w, r, `"filename" can't be empty`)
return
}
if api.CheckLimit(w, r, searchFilesRequest.Limit) != nil {
return
}
searchFilesResponse := &SearchFilesResponse{}
searchFilesResponse.Files, err = api.Db.SearchFiles(searchFilesRequest.Filename, searchFilesRequest.Limit, searchFilesRequest.Offset)
if err != nil {
api.HandleError(w, r, err)
return
}
log.Println("[api] Search files", searchFilesRequest.Filename, searchFilesRequest.Limit, searchFilesRequest.Offset)
json.NewEncoder(w).Encode(searchFilesResponse)
}