85 lines
1.7 KiB
Go
85 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"gosvc/httpserver"
|
|
"gosvc/validator"
|
|
"robotfs/utils"
|
|
)
|
|
|
|
type Entry struct {
|
|
Name string `json:"name"`
|
|
IsDir bool `json:"is_dir"`
|
|
}
|
|
|
|
type ListResult struct {
|
|
Entries []Entry `json:"entries"`
|
|
LastFileName string `json:"last_file_name"`
|
|
}
|
|
|
|
type MkdirParams struct {
|
|
Path string
|
|
}
|
|
|
|
func (m *MkdirParams) Validate() error {
|
|
return validator.WithIf(
|
|
m.Path == "", "Path is empty",
|
|
).Validate()
|
|
}
|
|
|
|
func (s *Service) HandleMkdir(
|
|
req *httpserver.Request,
|
|
resp *httpserver.Response,
|
|
) *httpserver.Response {
|
|
params := req.Binded.(*MkdirParams)
|
|
fullPath := utils.FullPath(params.Path)
|
|
|
|
err := s.FileSystemManager.MakeDirectory(req.Context(), fullPath)
|
|
if err != nil {
|
|
return resp.InternalServerError("mkdir failed, " + err.Error())
|
|
}
|
|
|
|
return resp.NoContent()
|
|
}
|
|
|
|
func (s *Service) HandleListDirectory(
|
|
req *httpserver.Request,
|
|
resp *httpserver.Response,
|
|
) *httpserver.Response {
|
|
// path := req.QueryString("path")
|
|
// startFileName := req.QueryString("startFileName")
|
|
// limit := req.QueryInt("limit")
|
|
entries := []Entry{
|
|
{Name: "file1.txt", IsDir: false},
|
|
{Name: "folder1", IsDir: true},
|
|
}
|
|
lastFileName := "file1.txt"
|
|
|
|
result := ListResult{
|
|
Entries: entries,
|
|
LastFileName: lastFileName,
|
|
}
|
|
|
|
return resp.OK(result).JSON()
|
|
}
|
|
|
|
func (s *Service) HandleDeleteDirectory(
|
|
req *httpserver.Request,
|
|
resp *httpserver.Response,
|
|
) *httpserver.Response {
|
|
return resp.NoContent()
|
|
}
|
|
|
|
func (s *Service) HandleRenameDirectory(
|
|
req *httpserver.Request,
|
|
resp *httpserver.Response,
|
|
) *httpserver.Response {
|
|
return resp.NoContent()
|
|
}
|
|
|
|
func (s *Service) HandleCopyDirectory(
|
|
req *httpserver.Request,
|
|
resp *httpserver.Response,
|
|
) *httpserver.Response {
|
|
return resp.NoContent()
|
|
}
|