Files
msw-open-music/pkg/api/handle_get_files_in_folder.go

53 lines
1.2 KiB
Go

package api
import (
"encoding/json"
"log"
"msw-open-music/pkg/database"
"net/http"
)
type GetFilesInFolderRequest struct {
Folder_id int64 `json:"folder_id"`
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
}
type GetFilesInFolderResponse struct {
Files *[]database.File `json:"files"`
Folder string `json:"folder"`
}
func (api *API) HandleGetFilesInFolder(w http.ResponseWriter, r *http.Request) {
getFilesInFolderRequest := &GetFilesInFolderRequest{
Folder_id: -1,
}
err := json.NewDecoder(r.Body).Decode(getFilesInFolderRequest)
if err != nil {
api.HandleError(w, r, err)
return
}
// check empyt
if getFilesInFolderRequest.Folder_id < 0 {
api.HandleErrorString(w, r, `"folder_id" can't be none or negative`)
return
}
files, folder, err := api.Db.GetFilesInFolder(getFilesInFolderRequest.Folder_id, getFilesInFolderRequest.Limit, getFilesInFolderRequest.Offset)
if err != nil {
api.HandleError(w, r, err)
return
}
getFilesInFolderResponse := &GetFilesInFolderResponse{
Files: &files,
Folder: folder,
}
log.Println("[api] Get files in folder", getFilesInFolderRequest.Folder_id)
json.NewEncoder(w).Encode(getFilesInFolderResponse)
}