From a9927763f43d59c418b264790ccee59defe8ca29 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Tue, 24 Oct 2023 08:38:40 +0200 Subject: refactor: Rename packages for clarity --- kcore/file.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 kcore/file.go (limited to 'kcore/file.go') diff --git a/kcore/file.go b/kcore/file.go new file mode 100644 index 0000000..f7f5e37 --- /dev/null +++ b/kcore/file.go @@ -0,0 +1,38 @@ +package kcore + +import ( + "fmt" + "io" + "mime/multipart" + "os" +) + +type File (string) + +func NewFile(ext string) File { + return File(NewID().String() + ext) +} + +func (file File) Path() string { + return fmt.Sprintf("media/files/%s", file) +} + +func (file *File) Save(raw multipart.File) error { + dest, err := os.Create(file.Path()) + if err != nil { + return Wrap(err, "error creating file destination") + } + _, err = io.Copy(dest, raw) + if err != nil { + return Wrap(err, "error copying to file destination") + } + return nil +} + +func (file *File) Delete() error { + err := os.Remove(file.Path()) + if err != nil { + return Wrap(err, "error deleting file") + } + return nil +} -- cgit v1.3