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) { data := svg.TemplateData{Id: generateId(), Name: name} if err := database.InsertSVG(&data); err != nil { return svg.TemplateData{}, err } pages := make([]svg.TemplatePage, len(svgbufs)) for i, pagebuf := range svgbufs { page, err := AddPage(data.Id, pagebuf) if err != nil { return svg.TemplateData{}, err } pages[i] = page } data.Pages = pages 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) }