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() }