WIP: Add SVG Templating #10
@@ -10,12 +10,46 @@ import (
|
||||
type SvgStorage interface {
|
||||
Create(id string, svg io.Reader) (string, error)
|
||||
Get(id string) (io.Reader, error)
|
||||
CreateTemp(data io.Reader, filetype string) (string, error)
|
||||
CreatePublic(data io.Reader, filetype string) (string, error)
|
||||
}
|
||||
|
||||
var _ SvgStorage = FileSvgStorage{}
|
||||
|
||||
type FileSvgStorage struct {
|
||||
basepath string
|
||||
}
|
||||
|
||||
func (f FileSvgStorage) CreatePublic(data io.Reader, filetype string) (string, error) {
|
||||
path := filepath.Join(f.basepath, "public")
|
||||
if err := os.Mkdir(path, 0755); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
file, err := os.CreateTemp(path, "*."+filetype)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
return file.Name(), nil
|
||||
}
|
||||
|
||||
func (f FileSvgStorage) CreateTemp(data io.Reader, filetype string) (string, error) {
|
||||
path := filepath.Join(f.basepath, "temp")
|
||||
if err := os.Mkdir(path, 0755); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
file, err := os.CreateTemp(path, "*."+filetype)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
return file.Name(), nil
|
||||
}
|
||||
|
||||
func NewFileStorage(path string) *FileSvgStorage {
|
||||
err := os.MkdirAll(path, 0755)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user