Files
svg-templater/pkg/svg/actions/upload.go
T
2026-05-27 00:59:25 +02:00

44 lines
866 B
Go

package actions
import (
"crypto/rand"
"encoding/hex"
"log"
"tomatentum.net/svg-templater/internal/database"
"tomatentum.net/svg-templater/pkg/svg"
)
func Create(svgbufs [][]byte, name string) (svg.TemplateData, error) {
id := generateId()
pages := make([]svg.TemplatePage, len(svgbufs))
for i, pagebuf := range svgbufs {
page, err := AddPage(id, pagebuf)
if err != nil {
return svg.TemplateData{}, err
}
pages[i] = page
}
data := svg.TemplateData{Id: id, Name: name, Pages: pages}
if err := database.InsertSVG(&data); err != nil {
return svg.TemplateData{}, err
}
log.Println("Created SVG Template " + data.Id)
return data, nil
}
func generateId() string {
token := make([]byte, 16)
if _, err := rand.Read(token); err != nil {
log.Fatal("Failed to generate Token:\n", err)
return ""
}
return hex.EncodeToString(token)
}