finished up generate data models & added some logging

This commit is contained in:
cubixle
2021-06-16 22:57:43 +01:00
parent 9d35acca9b
commit feff0c38eb
9 changed files with 181 additions and 26 deletions
+31 -3
View File
@@ -1,9 +1,11 @@
package tuugen
import (
"embed"
"html/template"
"path/filepath"
"os"
"path/filepath"
"strings"
)
type DataModel struct {
@@ -17,14 +19,39 @@ type DataProperty struct {
AutoIncrement bool `yaml:"autoinc"`
}
func GenerateDataModels(cfg Config) error {
func (p DataProperty) NameCorrected() string {
if strings.Contains(p.Name, "_") {
parts := strings.Split(p.Name, "_")
newParts := []string{}
for _, p := range parts {
newParts = append(newParts, strings.Title(p))
}
return strings.Join(newParts, "")
}
return strings.Title(p.Name)
}
func (p DataProperty) DBTypeToGoType() string {
switch p.Type {
case "varchar":
return "string"
case "timestamp":
return "time.Time"
case "int":
return "int32"
default:
return "string"
}
}
func GenerateDataModels(FS embed.FS, cfg Config) error {
for _, dm := range cfg.DataModels {
t, err := template.ParseFS(FS, "templates/data_model.go.tmpl")
if err != nil {
return err
}
outputFile := "internal/data/models.go"
outputFile := "internal/storage/" + strings.ToLower(dm.Name) + ".go"
fp := filepath.Dir(outputFile)
if err := os.MkdirAll(fp, 0777); err != nil {
return err
@@ -39,4 +66,5 @@ func GenerateDataModels(cfg Config) error {
return err
}
}
return nil
}