Fixed all template function signatures

* Added finisher function signatures
* Added VideoSlice type
* Added videoQuery type
This commit is contained in:
Patrick O'brien 2016-04-17 19:25:09 +10:00
parent 95d91f17f3
commit 270fe59117
6 changed files with 87 additions and 26 deletions

View file

@ -1,9 +1,14 @@
{{- $tableNameSingular := titleCaseSingular .Table.Name -}}
{{- $dbName := singular .Table.Name -}}
{{- $tableNamePlural := titleCasePlural .Table.Name -}}
{{- $varNameSingular := camelCaseSingular .Table.Name -}}
{{- $varNamePlural := camelCasePlural .Table.Name -}}
type {{$varNameSingular}}Query struct {
*boil.Query
}
// {{$tableNamePlural}}All retrieves all records.
func {{$tableNamePlural}}All() ([]*{{$tableNameSingular}}, error) {
func {{$tableNamePlural}}(mods ...QueryMod) {{$varNameSingular}}Query {
var {{$varNamePlural}} []*{{$tableNameSingular}}
rows, err := boil.GetDB().Query(`SELECT {{selectParamNames $dbName .Table.Columns}} FROM {{.Table.Name}}`)
@ -28,3 +33,8 @@ func {{$tableNamePlural}}All() ([]*{{$tableNameSingular}}, error) {
return {{$varNamePlural}}, nil
}
func {{$tableNamePlural}}X(exec boil.Executor, mods ...QueryMod) {{$tableNameSingular}}Query {
}

View file

@ -1,22 +1,9 @@
{{- $tableNameSingular := titleCaseSingular .Table.Name -}}
// {{$tableNameSingular}}Delete deletes a single record.
func {{$tableNameSingular}}Delete(db boil.DB, id int) error {
if id == 0 {
return errors.New("{{.PkgName}}: no id provided for {{.Table.Name}} delete")
}
_, err := db.Exec("DELETE FROM {{.Table.Name}} WHERE id=$1", id)
if err != nil {
return fmt.Errorf("{{.PkgName}}: unable to delete from {{.Table.Name}}: %s", err)
}
return nil
}
{{if hasPrimaryKey .Table.PKey -}}
{{- $tableNameSingular := titleCaseSingular .Table.Name -}}
{{- $varNameSingular := camelCaseSingular .Table.Name -}}
// Delete deletes a single {{$tableNameSingular}} record.
// Delete will match against the primary key column to find the record to delete.
func (o *{{$tableNameSingular}}) Delete(db boil.DB) error {
func (o *{{$tableNameSingular}}) Delete(mods ...QueryMod) error {
_, err := db.Exec("DELETE FROM {{.Table.Name}} WHERE {{wherePrimaryKey .Table.PKey.Columns 1}}", {{paramsPrimaryKey "o." .Table.PKey.Columns true}})
if err != nil {
return fmt.Errorf("{{.PkgName}}: unable to delete from {{.Table.Name}}: %s", err)
@ -25,3 +12,12 @@ func (o *{{$tableNameSingular}}) Delete(db boil.DB) error {
return nil
}
{{- end}}
func (o {{$varNameSingular}}Query) DeleteAll() error {
_, err := db.Exec("DELETE FROM {{.Table.Name}} WHERE {{wherePrimaryKey .Table.PKey.Columns 1}}", {{paramsPrimaryKey "o." .Table.PKey.Columns true}})
if err != nil {
return fmt.Errorf("{{.PkgName}}: unable to delete from {{.Table.Name}}: %s", err)
}
return nil
}

View file

@ -2,7 +2,21 @@
{{- $dbName := singular .Table.Name -}}
{{- $varNameSingular := camelCaseSingular .Table.Name -}}
// {{$tableNameSingular}}Find retrieves a single record by ID.
func {{$tableNameSingular}}Find(id int) (*{{$tableNameSingular}}, error) {
func {{$tableNameSingular}}Find(id int64, selectList ...string) (*{{$tableNameSingular}}, error) {
if id == 0 {
return nil, errors.New("{{.PkgName}}: no id provided for {{.Table.Name}} select")
}
var {{$varNameSingular}} *{{$tableNameSingular}}
err := boil.GetDB().Select(&{{$varNameSingular}}, `SELECT {{selectParamNames $dbName .Table.Columns}} WHERE id=$1`, id)
if err != nil {
return nil, fmt.Errorf("{{.PkgName}}: unable to select from {{.Table.Name}}: %s", err)
}
return {{$varNameSingular}}, nil
}
func {{$tableNameSingular}}FindX(exec boil.Executor, id int64, selectList ...string) (*{{$tableNameSingular}}, error) {
if id == 0 {
return nil, errors.New("{{.PkgName}}: no id provided for {{.Table.Name}} select")
}

View file

@ -1,3 +1,15 @@
// One
// All
// Count
{{- $tableNameSingular := titleCaseSingular .Table.Name -}}
{{- $varNameSingular := camelCaseSingular .Table.Name -}}
type {{$tableNameSingular}}Slice []*{{$tableNameSingular}}
func ({{$varNameSingular}}Query) One() (*{{$tableNameSingular}}, error) {
}
func ({{$varNameSingular}}Query) All() ({{$tableNameSingular}}Slice, error) {
}
func ({{$varNameSingular}}Query) Count() (int64, error) {
}

View file

@ -1,6 +1,29 @@
{{- $tableNameSingular := titleCaseSingular .Table.Name -}}
// {{$tableNameSingular}}Insert inserts a single record.
func (o *{{$tableNameSingular}}) Insert() (int, error) {
func (o *{{$tableNameSingular}}) Insert(mods ...QueryMod) error {
if o == nil {
return 0, errors.New("{{.PkgName}}: no {{.Table.Name}} provided for insertion")
}
if err := o.doBeforeCreateHooks(); err != nil {
return 0, err
}
var rowID int
err := boil.GetDB().QueryRow(`INSERT INTO {{.Table.Name}} ({{insertParamNames .Table.Columns}}) VALUES({{insertParamFlags .Table.Columns}}) RETURNING id`, {{insertParamVariables "o." .Table.Columns}}).Scan(&rowID)
if err != nil {
return 0, fmt.Errorf("{{.PkgName}}: unable to insert {{.Table.Name}}: %s", err)
}
if err := o.doAfterCreateHooks(); err != nil {
return 0, err
}
return rowID, nil
}
func (o *{{$tableNameSingular}}) InsertX(exec boil.Executor, mods ...QueryMod) error {
if o == nil {
return 0, errors.New("{{.PkgName}}: no {{.Table.Name}} provided for insertion")
}

View file

@ -1,11 +1,16 @@
{{- $tableNameSingular := titleCaseSingular .Table.Name -}}
{{if hasPrimaryKey .Table.PKey -}}
{{- $tableNameSingular := titleCaseSingular .Table.Name -}}
{{- $varNameSingular := camelCaseSingular .Table.Name -}}
// Update updates a single {{$tableNameSingular}} record.
// whitelist is a list of column_name's that should be updated.
// Update will match against the primary key column to find the record to update.
// WARNING: This Update method will NOT ignore nil members.
// If you pass in nil members, those columnns will be set to null.
func (o *{{$tableNameSingular}}) UpdateX(db Executor, whitelist ... string) error {
func (o *{{$tableNameSingular}}) Update(whitelist ... string) error {
return o.UpdateX(boil.GetDB(), whitelist...)
}
func (o *{{$tableNameSingular}}) UpdateX(exec boil.Executor, whitelist ... string) error {
if err := o.doBeforeUpdateHooks(); err != nil {
return err
}
@ -30,7 +35,8 @@ func (o *{{$tableNameSingular}}) UpdateX(db Executor, whitelist ... string) erro
return nil
}
func (o *{{$tableNameSingular}}) Update(whitelist ... string) error {
return o.UpdateX(boil.GetDB(), whitelist...)
func (v {{$varNameSingular}}Query) UpdateAll(cols boil.M) error {
}
{{- end}}