Simplify error handling in generator.

This commit is contained in:
go-jet 2019-09-20 18:20:26 +02:00
parent f5287628aa
commit 50bda95da2
10 changed files with 92 additions and 208 deletions

View file

@ -25,31 +25,20 @@ type DBConnection struct {
}
// Generate generates jet files at destination dir from database connection details
func Generate(destDir string, dbConn DBConnection) error {
func Generate(destDir string, dbConn DBConnection) (err error) {
defer utils.ErrorCatch(&err)
db, err := openConnection(dbConn)
utils.PanicOnError(err)
defer utils.DBClose(db)
if err != nil {
return err
}
fmt.Println("Retrieving schema information...")
schemaInfo, err := metadata.GetSchemaMetaData(db, dbConn.SchemaName, &postgresQuerySet{})
if err != nil {
return err
}
schemaInfo := metadata.GetSchemaMetaData(db, dbConn.SchemaName, &postgresQuerySet{})
genPath := path.Join(destDir, dbConn.DBName, dbConn.SchemaName)
template.GenerateFiles(genPath, schemaInfo, postgres.Dialect)
err = template.GenerateFiles(genPath, schemaInfo, postgres.Dialect)
if err != nil {
return err
}
return nil
return
}
func openConnection(dbConn DBConnection) (*sql.DB, error) {

View file

@ -3,6 +3,7 @@ package postgres
import (
"database/sql"
"github.com/go-jet/jet/generator/internal/metadata"
"github.com/go-jet/jet/internal/utils"
)
// postgresQuerySet is dialect query set for PostgreSQL
@ -45,12 +46,9 @@ WHERE n.nspname = $1
ORDER BY n.nspname, t.typname, e.enumsortorder;`
}
func (p *postgresQuerySet) GetEnumsMetaData(db *sql.DB, schemaName string) ([]metadata.MetaData, error) {
func (p *postgresQuerySet) GetEnumsMetaData(db *sql.DB, schemaName string) []metadata.MetaData {
rows, err := db.Query(p.ListOfEnumsQuery(), schemaName)
if err != nil {
return nil, err
}
utils.PanicOnError(err)
defer rows.Close()
enumsInfosMap := map[string][]string{}
@ -58,9 +56,7 @@ func (p *postgresQuerySet) GetEnumsMetaData(db *sql.DB, schemaName string) ([]me
var enumName string
var enumValue string
err = rows.Scan(&enumName, &enumValue)
if err != nil {
return nil, err
}
utils.PanicOnError(err)
enumValues := enumsInfosMap[enumName]
@ -70,10 +66,7 @@ func (p *postgresQuerySet) GetEnumsMetaData(db *sql.DB, schemaName string) ([]me
}
err = rows.Err()
if err != nil {
return nil, err
}
utils.PanicOnError(err)
ret := []metadata.MetaData{}
@ -84,5 +77,5 @@ func (p *postgresQuerySet) GetEnumsMetaData(db *sql.DB, schemaName string) ([]me
})
}
return ret, nil
return ret
}