support /v1/get_files_in_folder return folder path
This commit is contained in:
@@ -14,7 +14,8 @@ type GetFilesInFolderRequest struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type GetFilesInFolderResponse struct {
|
type GetFilesInFolderResponse struct {
|
||||||
Files *[]database.File `json:"files"`
|
Files *[]database.File `json:"files"`
|
||||||
|
Folder string `json:"folder"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (api *API) HandleGetFilesInFolder(w http.ResponseWriter, r *http.Request) {
|
func (api *API) HandleGetFilesInFolder(w http.ResponseWriter, r *http.Request) {
|
||||||
@@ -34,14 +35,15 @@ func (api *API) HandleGetFilesInFolder(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
files, err := api.Db.GetFilesInFolder(getFilesInFolderRequest.Folder_id, getFilesInFolderRequest.Limit, getFilesInFolderRequest.Offset)
|
files, folder, err := api.Db.GetFilesInFolder(getFilesInFolderRequest.Folder_id, getFilesInFolderRequest.Limit, getFilesInFolderRequest.Offset)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
api.HandleError(w, r, err)
|
api.HandleError(w, r, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
getFilesInFolderResponse := &GetFilesInFolderResponse{
|
getFilesInFolderResponse := &GetFilesInFolderResponse{
|
||||||
Files: &files,
|
Files: &files,
|
||||||
|
Folder: folder,
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Println("[api] Get files in folder", getFilesInFolderRequest.Folder_id)
|
log.Println("[api] Get files in folder", getFilesInFolderRequest.Folder_id)
|
||||||
|
|||||||
@@ -53,28 +53,29 @@ func (database *Database) GetRandomFilesWithTag(tagID, limit int64) ([]File, err
|
|||||||
return files, nil
|
return files, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (database *Database) GetFilesInFolder(folder_id int64, limit int64, offset int64) ([]File, error) {
|
func (database *Database) GetFilesInFolder(folder_id int64, limit int64, offset int64) ([]File, string, error) {
|
||||||
database.singleThreadLock.Lock()
|
database.singleThreadLock.Lock()
|
||||||
defer database.singleThreadLock.Unlock()
|
defer database.singleThreadLock.Unlock()
|
||||||
|
|
||||||
rows, err := database.stmt.getFilesInFolder.Query(folder_id, limit, offset)
|
rows, err := database.stmt.getFilesInFolder.Query(folder_id, limit, offset)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, "", err
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
files := make([]File, 0)
|
files := make([]File, 0)
|
||||||
|
folder := ""
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
file := File{
|
file := File{
|
||||||
Db: database,
|
Db: database,
|
||||||
Folder_id: folder_id,
|
Folder_id: folder_id,
|
||||||
}
|
}
|
||||||
err = rows.Scan(&file.ID, &file.Filename, &file.Filesize, &file.Foldername)
|
err = rows.Scan(&file.ID, &file.Filename, &file.Filesize, &file.Foldername, &folder)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, "", err
|
||||||
}
|
}
|
||||||
files = append(files, file)
|
files = append(files, file)
|
||||||
}
|
}
|
||||||
return files, nil
|
return files, folder, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (database *Database) SearchFolders(foldername string, limit int64, offset int64) ([]Folder, error) {
|
func (database *Database) SearchFolders(foldername string, limit int64, offset int64) ([]Folder, error) {
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ ORDER BY foldername
|
|||||||
LIMIT ? OFFSET ?;`
|
LIMIT ? OFFSET ?;`
|
||||||
|
|
||||||
var getFilesInFolderQuery = `SELECT
|
var getFilesInFolderQuery = `SELECT
|
||||||
files.id, files.filename, files.filesize, folders.foldername
|
files.id, files.filename, files.filesize, folders.foldername, folders.folder
|
||||||
FROM files
|
FROM files
|
||||||
JOIN folders ON files.folder_id = folders.id
|
JOIN folders ON files.folder_id = folders.id
|
||||||
WHERE folder_id = ?
|
WHERE folder_id = ?
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ type File struct {
|
|||||||
type Folder struct {
|
type Folder struct {
|
||||||
Db *Database `json:"-"`
|
Db *Database `json:"-"`
|
||||||
ID int64 `json:"id"`
|
ID int64 `json:"id"`
|
||||||
Folder string `json:"-"`
|
Folder string `json:"folder"`
|
||||||
Foldername string `json:"foldername"`
|
Foldername string `json:"foldername"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user