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