deleting and uploading files

This commit is contained in:
Daniel Goc
2026-04-02 11:26:58 +02:00
parent b9bc121d43
commit 833f4a5a07
31 changed files with 88 additions and 62 deletions

View File

@@ -30,10 +30,10 @@ func StorageHandlerRoutes(r fiber.Router) fiber.Router {
r.Get("/list-content", handler.ListContent)
r.Get("/download-file", handler.DownloadFile)
r.Post("/upload-file", handler.CreateFolder)
r.Post("/upload-file", handler.UploadFile)
r.Get("/create-folder", handler.CreateFolder)
r.Get("/delete-file", handler.DeleteFile)
r.Get("/delete-folder", handler.DeleteFolder)
r.Delete("/delete-file", handler.DeleteFile)
r.Delete("/delete-folder", handler.DeleteFolder)
return r
}
@@ -88,12 +88,11 @@ func (h *StorageHandler) UploadFile(c fiber.Ctx) error {
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrMissingFileFieldDocument)))
}
err = h.storageService.UploadFile(abs_path, c.Query("name"), f)
err = h.storageService.UploadFile(c, abs_path, f)
if err != nil {
return c.Status(responseErrors.GetErrorStatus(err)).
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, err)))
}
err = c.SaveFile(f, abs_path)
return c.JSON(response.Make(nullable.GetNil(""), 0, i18n.T_(c, response.Message_OK)))
}

View File

@@ -5,13 +5,14 @@ import (
"os"
"git.ma-al.com/goc_daniel/b2b/app/model"
"github.com/gofiber/fiber/v3"
)
type UIStorageRepo interface {
EntryInfo(abs_path string) (os.FileInfo, error)
ListContent(abs_path string) (*[]model.EntryInList, error)
OpenFile(abs_path string) (*os.File, error)
UploadFile(abs_path string, f *multipart.FileHeader) error
UploadFile(c fiber.Ctx, abs_path string, f *multipart.FileHeader) error
CreateFolder(abs_path string) error
DeleteFile(abs_path string) error
DeleteFolder(abs_path string) error
@@ -50,8 +51,8 @@ func (r *StorageRepo) OpenFile(abs_path string) (*os.File, error) {
return os.Open(abs_path)
}
func (r *StorageRepo) UploadFile(abs_path string, f *multipart.FileHeader) error {
return nil
func (r *StorageRepo) UploadFile(c fiber.Ctx, abs_path string, f *multipart.FileHeader) error {
return c.SaveFile(f, abs_path)
}
func (r *StorageRepo) CreateFolder(abs_path string) error {

View File

@@ -9,6 +9,7 @@ import (
"git.ma-al.com/goc_daniel/b2b/app/model"
"git.ma-al.com/goc_daniel/b2b/app/repos/storageRepo"
"git.ma-al.com/goc_daniel/b2b/app/utils/responseErrors"
"github.com/gofiber/fiber/v3"
)
type StorageService struct {
@@ -45,12 +46,13 @@ func (s *StorageService) DownloadFilePrep(abs_path string) (*os.File, string, in
return f, filepath.Base(abs_path), info.Size(), nil
}
func (s *StorageService) UploadFile(abs_path string, name string, f *multipart.FileHeader) error {
func (s *StorageService) UploadFile(c fiber.Ctx, abs_path string, f *multipart.FileHeader) error {
info, err := s.storageRepo.EntryInfo(abs_path)
if err != nil || !info.IsDir() {
return responseErrors.ErrFolderDoesNotExist
}
name := f.Filename
if name == "" || name == "." || name == ".." || filepath.Base(name) != name {
return responseErrors.ErrBadAttribute
}
@@ -66,7 +68,7 @@ func (s *StorageService) UploadFile(abs_path string, name string, f *multipart.F
if err == nil {
return responseErrors.ErrNameTaken
} else if os.IsNotExist(err) {
return s.storageRepo.UploadFile(abs_file_path, f)
return s.storageRepo.UploadFile(c, abs_file_path, f)
} else {
return err
}