storj/pkg/satellite/satellitedb/dbx/satellitedb.dbx.go
Yehor Butko 0c95fba4c8
Satellite Projects db entity and api updated (#772)
* Satellite Projects db entity and api updated

* get users projects query updated with dbx
2018-12-06 17:19:47 +02:00

2484 lines
62 KiB
Go

// AUTOGENERATED BY gopkg.in/spacemonkeygo/dbx.v1
// DO NOT EDIT.
package dbx
import (
"bytes"
"context"
"database/sql"
"errors"
"fmt"
"reflect"
"regexp"
"strconv"
"strings"
"sync"
"time"
"unicode"
"github.com/mattn/go-sqlite3"
)
// Prevent conditional imports from causing build failures
var _ = strconv.Itoa
var _ = strings.LastIndex
var _ = fmt.Sprint
var _ sync.Mutex
var (
WrapErr = func(err *Error) error { return err }
Logger func(format string, args ...interface{})
errTooManyRows = errors.New("too many rows")
errUnsupportedDriver = errors.New("unsupported driver")
errEmptyUpdate = errors.New("empty update")
)
func logError(format string, args ...interface{}) {
if Logger != nil {
Logger(format, args...)
}
}
type ErrorCode int
const (
ErrorCode_Unknown ErrorCode = iota
ErrorCode_UnsupportedDriver
ErrorCode_NoRows
ErrorCode_TxDone
ErrorCode_TooManyRows
ErrorCode_ConstraintViolation
ErrorCode_EmptyUpdate
)
type Error struct {
Err error
Code ErrorCode
Driver string
Constraint string
QuerySuffix string
}
func (e *Error) Error() string {
return e.Err.Error()
}
func wrapErr(e *Error) error {
if WrapErr == nil {
return e
}
return WrapErr(e)
}
func makeErr(err error) error {
if err == nil {
return nil
}
e := &Error{Err: err}
switch err {
case sql.ErrNoRows:
e.Code = ErrorCode_NoRows
case sql.ErrTxDone:
e.Code = ErrorCode_TxDone
}
return wrapErr(e)
}
func unsupportedDriver(driver string) error {
return wrapErr(&Error{
Err: errUnsupportedDriver,
Code: ErrorCode_UnsupportedDriver,
Driver: driver,
})
}
func emptyUpdate() error {
return wrapErr(&Error{
Err: errEmptyUpdate,
Code: ErrorCode_EmptyUpdate,
})
}
func tooManyRows(query_suffix string) error {
return wrapErr(&Error{
Err: errTooManyRows,
Code: ErrorCode_TooManyRows,
QuerySuffix: query_suffix,
})
}
func constraintViolation(err error, constraint string) error {
return wrapErr(&Error{
Err: err,
Code: ErrorCode_ConstraintViolation,
Constraint: constraint,
})
}
type driver interface {
Exec(query string, args ...interface{}) (sql.Result, error)
Query(query string, args ...interface{}) (*sql.Rows, error)
QueryRow(query string, args ...interface{}) *sql.Row
}
var (
notAPointer = errors.New("destination not a pointer")
lossyConversion = errors.New("lossy conversion")
)
type DB struct {
*sql.DB
dbMethods
Hooks struct {
Now func() time.Time
}
}
func Open(driver, source string) (db *DB, err error) {
var sql_db *sql.DB
switch driver {
case "sqlite3":
sql_db, err = opensqlite3(source)
default:
return nil, unsupportedDriver(driver)
}
if err != nil {
return nil, makeErr(err)
}
defer func(sql_db *sql.DB) {
if err != nil {
sql_db.Close()
}
}(sql_db)
if err := sql_db.Ping(); err != nil {
return nil, makeErr(err)
}
db = &DB{
DB: sql_db,
}
db.Hooks.Now = time.Now
switch driver {
case "sqlite3":
db.dbMethods = newsqlite3(db)
default:
return nil, unsupportedDriver(driver)
}
return db, nil
}
func (obj *DB) Close() (err error) {
return obj.makeErr(obj.DB.Close())
}
func (obj *DB) Open(ctx context.Context) (*Tx, error) {
tx, err := obj.DB.Begin()
if err != nil {
return nil, obj.makeErr(err)
}
return &Tx{
Tx: tx,
txMethods: obj.wrapTx(tx),
}, nil
}
func (obj *DB) NewRx() *Rx {
return &Rx{db: obj}
}
func DeleteAll(ctx context.Context, db *DB) (int64, error) {
tx, err := db.Open(ctx)
if err != nil {
return 0, err
}
defer func() {
if err == nil {
err = db.makeErr(tx.Commit())
return
}
if err_rollback := tx.Rollback(); err_rollback != nil {
logError("delete-all: rollback failed: %v", db.makeErr(err_rollback))
}
}()
return tx.deleteAll(ctx)
}
type Tx struct {
Tx *sql.Tx
txMethods
}
type dialectTx struct {
tx *sql.Tx
}
func (tx *dialectTx) Commit() (err error) {
return makeErr(tx.tx.Commit())
}
func (tx *dialectTx) Rollback() (err error) {
return makeErr(tx.tx.Rollback())
}
type sqlite3Impl struct {
db *DB
dialect __sqlbundle_sqlite3
driver driver
}
func (obj *sqlite3Impl) Rebind(s string) string {
return obj.dialect.Rebind(s)
}
func (obj *sqlite3Impl) logStmt(stmt string, args ...interface{}) {
sqlite3LogStmt(stmt, args...)
}
func (obj *sqlite3Impl) makeErr(err error) error {
constraint, ok := obj.isConstraintError(err)
if ok {
return constraintViolation(err, constraint)
}
return makeErr(err)
}
type sqlite3DB struct {
db *DB
*sqlite3Impl
}
func newsqlite3(db *DB) *sqlite3DB {
return &sqlite3DB{
db: db,
sqlite3Impl: &sqlite3Impl{
db: db,
driver: db.DB,
},
}
}
func (obj *sqlite3DB) Schema() string {
return `CREATE TABLE users (
id BLOB NOT NULL,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
email TEXT NOT NULL,
password_hash BLOB NOT NULL,
created_at TIMESTAMP NOT NULL,
PRIMARY KEY ( id ),
UNIQUE ( email )
);
CREATE TABLE companies (
user_id BLOB NOT NULL REFERENCES users( id ) ON DELETE CASCADE,
name TEXT NOT NULL,
address TEXT NOT NULL,
country TEXT NOT NULL,
city TEXT NOT NULL,
state TEXT NOT NULL,
postal_code TEXT NOT NULL,
created_at TIMESTAMP NOT NULL,
PRIMARY KEY ( user_id )
);
CREATE TABLE projects (
id BLOB NOT NULL,
owner_id BLOB REFERENCES users( id ) ON DELETE SET NULL,
name TEXT NOT NULL,
company_name TEXT NOT NULL,
description TEXT NOT NULL,
terms_accepted INTEGER NOT NULL,
created_at TIMESTAMP NOT NULL,
PRIMARY KEY ( id )
);
CREATE TABLE project_members (
id BLOB NOT NULL,
member_id BLOB NOT NULL REFERENCES users( id ) ON DELETE CASCADE,
project_id BLOB NOT NULL REFERENCES projects( id ) ON DELETE CASCADE,
created_at TIMESTAMP NOT NULL,
PRIMARY KEY ( id )
);`
}
func (obj *sqlite3DB) wrapTx(tx *sql.Tx) txMethods {
return &sqlite3Tx{
dialectTx: dialectTx{tx: tx},
sqlite3Impl: &sqlite3Impl{
db: obj.db,
driver: tx,
},
}
}
type sqlite3Tx struct {
dialectTx
*sqlite3Impl
}
func sqlite3LogStmt(stmt string, args ...interface{}) {
// TODO: render placeholders
if Logger != nil {
out := fmt.Sprintf("stmt: %s\nargs: %v\n", stmt, pretty(args))
Logger(out)
}
}
type pretty []interface{}
func (p pretty) Format(f fmt.State, c rune) {
fmt.Fprint(f, "[")
nextval:
for i, val := range p {
if i > 0 {
fmt.Fprint(f, ", ")
}
rv := reflect.ValueOf(val)
if rv.Kind() == reflect.Ptr {
if rv.IsNil() {
fmt.Fprint(f, "NULL")
continue
}
val = rv.Elem().Interface()
}
switch v := val.(type) {
case string:
fmt.Fprintf(f, "%q", v)
case time.Time:
fmt.Fprintf(f, "%s", v.Format(time.RFC3339Nano))
case []byte:
for _, b := range v {
if !unicode.IsPrint(rune(b)) {
fmt.Fprintf(f, "%#x", v)
continue nextval
}
}
fmt.Fprintf(f, "%q", v)
default:
fmt.Fprintf(f, "%v", v)
}
}
fmt.Fprint(f, "]")
}
type User struct {
Id []byte
FirstName string
LastName string
Email string
PasswordHash []byte
CreatedAt time.Time
}
func (User) _Table() string { return "users" }
type User_Update_Fields struct {
FirstName User_FirstName_Field
LastName User_LastName_Field
Email User_Email_Field
PasswordHash User_PasswordHash_Field
}
type User_Id_Field struct {
_set bool
_value []byte
}
func User_Id(v []byte) User_Id_Field {
return User_Id_Field{_set: true, _value: v}
}
func (f User_Id_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (User_Id_Field) _Column() string { return "id" }
type User_FirstName_Field struct {
_set bool
_value string
}
func User_FirstName(v string) User_FirstName_Field {
return User_FirstName_Field{_set: true, _value: v}
}
func (f User_FirstName_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (User_FirstName_Field) _Column() string { return "first_name" }
type User_LastName_Field struct {
_set bool
_value string
}
func User_LastName(v string) User_LastName_Field {
return User_LastName_Field{_set: true, _value: v}
}
func (f User_LastName_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (User_LastName_Field) _Column() string { return "last_name" }
type User_Email_Field struct {
_set bool
_value string
}
func User_Email(v string) User_Email_Field {
return User_Email_Field{_set: true, _value: v}
}
func (f User_Email_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (User_Email_Field) _Column() string { return "email" }
type User_PasswordHash_Field struct {
_set bool
_value []byte
}
func User_PasswordHash(v []byte) User_PasswordHash_Field {
return User_PasswordHash_Field{_set: true, _value: v}
}
func (f User_PasswordHash_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (User_PasswordHash_Field) _Column() string { return "password_hash" }
type User_CreatedAt_Field struct {
_set bool
_value time.Time
}
func User_CreatedAt(v time.Time) User_CreatedAt_Field {
return User_CreatedAt_Field{_set: true, _value: v}
}
func (f User_CreatedAt_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (User_CreatedAt_Field) _Column() string { return "created_at" }
type Company struct {
UserId []byte
Name string
Address string
Country string
City string
State string
PostalCode string
CreatedAt time.Time
}
func (Company) _Table() string { return "companies" }
type Company_Update_Fields struct {
Name Company_Name_Field
Address Company_Address_Field
Country Company_Country_Field
City Company_City_Field
State Company_State_Field
PostalCode Company_PostalCode_Field
}
type Company_UserId_Field struct {
_set bool
_value []byte
}
func Company_UserId(v []byte) Company_UserId_Field {
return Company_UserId_Field{_set: true, _value: v}
}
func (f Company_UserId_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Company_UserId_Field) _Column() string { return "user_id" }
type Company_Name_Field struct {
_set bool
_value string
}
func Company_Name(v string) Company_Name_Field {
return Company_Name_Field{_set: true, _value: v}
}
func (f Company_Name_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Company_Name_Field) _Column() string { return "name" }
type Company_Address_Field struct {
_set bool
_value string
}
func Company_Address(v string) Company_Address_Field {
return Company_Address_Field{_set: true, _value: v}
}
func (f Company_Address_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Company_Address_Field) _Column() string { return "address" }
type Company_Country_Field struct {
_set bool
_value string
}
func Company_Country(v string) Company_Country_Field {
return Company_Country_Field{_set: true, _value: v}
}
func (f Company_Country_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Company_Country_Field) _Column() string { return "country" }
type Company_City_Field struct {
_set bool
_value string
}
func Company_City(v string) Company_City_Field {
return Company_City_Field{_set: true, _value: v}
}
func (f Company_City_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Company_City_Field) _Column() string { return "city" }
type Company_State_Field struct {
_set bool
_value string
}
func Company_State(v string) Company_State_Field {
return Company_State_Field{_set: true, _value: v}
}
func (f Company_State_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Company_State_Field) _Column() string { return "state" }
type Company_PostalCode_Field struct {
_set bool
_value string
}
func Company_PostalCode(v string) Company_PostalCode_Field {
return Company_PostalCode_Field{_set: true, _value: v}
}
func (f Company_PostalCode_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Company_PostalCode_Field) _Column() string { return "postal_code" }
type Company_CreatedAt_Field struct {
_set bool
_value time.Time
}
func Company_CreatedAt(v time.Time) Company_CreatedAt_Field {
return Company_CreatedAt_Field{_set: true, _value: v}
}
func (f Company_CreatedAt_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Company_CreatedAt_Field) _Column() string { return "created_at" }
type Project struct {
Id []byte
OwnerId []byte
Name string
CompanyName string
Description string
TermsAccepted int
CreatedAt time.Time
}
func (Project) _Table() string { return "projects" }
type Project_Create_Fields struct {
OwnerId Project_OwnerId_Field
}
type Project_Update_Fields struct {
OwnerId Project_OwnerId_Field
Description Project_Description_Field
TermsAccepted Project_TermsAccepted_Field
}
type Project_Id_Field struct {
_set bool
_value []byte
}
func Project_Id(v []byte) Project_Id_Field {
return Project_Id_Field{_set: true, _value: v}
}
func (f Project_Id_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Project_Id_Field) _Column() string { return "id" }
type Project_OwnerId_Field struct {
_set bool
_value []byte
}
func Project_OwnerId(v []byte) Project_OwnerId_Field {
return Project_OwnerId_Field{_set: true, _value: v}
}
func Project_OwnerId_Raw(v []byte) Project_OwnerId_Field {
if v == nil {
return Project_OwnerId_Null()
}
return Project_OwnerId(v)
}
func Project_OwnerId_Null() Project_OwnerId_Field {
return Project_OwnerId_Field{_set: true}
}
func (f Project_OwnerId_Field) isnull() bool { return !f._set || f._value == nil }
func (f Project_OwnerId_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Project_OwnerId_Field) _Column() string { return "owner_id" }
type Project_Name_Field struct {
_set bool
_value string
}
func Project_Name(v string) Project_Name_Field {
return Project_Name_Field{_set: true, _value: v}
}
func (f Project_Name_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Project_Name_Field) _Column() string { return "name" }
type Project_CompanyName_Field struct {
_set bool
_value string
}
func Project_CompanyName(v string) Project_CompanyName_Field {
return Project_CompanyName_Field{_set: true, _value: v}
}
func (f Project_CompanyName_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Project_CompanyName_Field) _Column() string { return "company_name" }
type Project_Description_Field struct {
_set bool
_value string
}
func Project_Description(v string) Project_Description_Field {
return Project_Description_Field{_set: true, _value: v}
}
func (f Project_Description_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Project_Description_Field) _Column() string { return "description" }
type Project_TermsAccepted_Field struct {
_set bool
_value int
}
func Project_TermsAccepted(v int) Project_TermsAccepted_Field {
return Project_TermsAccepted_Field{_set: true, _value: v}
}
func (f Project_TermsAccepted_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Project_TermsAccepted_Field) _Column() string { return "terms_accepted" }
type Project_CreatedAt_Field struct {
_set bool
_value time.Time
}
func Project_CreatedAt(v time.Time) Project_CreatedAt_Field {
return Project_CreatedAt_Field{_set: true, _value: v}
}
func (f Project_CreatedAt_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (Project_CreatedAt_Field) _Column() string { return "created_at" }
type ProjectMember struct {
Id []byte
MemberId []byte
ProjectId []byte
CreatedAt time.Time
}
func (ProjectMember) _Table() string { return "project_members" }
type ProjectMember_Update_Fields struct {
ProjectId ProjectMember_ProjectId_Field
}
type ProjectMember_Id_Field struct {
_set bool
_value []byte
}
func ProjectMember_Id(v []byte) ProjectMember_Id_Field {
return ProjectMember_Id_Field{_set: true, _value: v}
}
func (f ProjectMember_Id_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (ProjectMember_Id_Field) _Column() string { return "id" }
type ProjectMember_MemberId_Field struct {
_set bool
_value []byte
}
func ProjectMember_MemberId(v []byte) ProjectMember_MemberId_Field {
return ProjectMember_MemberId_Field{_set: true, _value: v}
}
func (f ProjectMember_MemberId_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (ProjectMember_MemberId_Field) _Column() string { return "member_id" }
type ProjectMember_ProjectId_Field struct {
_set bool
_value []byte
}
func ProjectMember_ProjectId(v []byte) ProjectMember_ProjectId_Field {
return ProjectMember_ProjectId_Field{_set: true, _value: v}
}
func (f ProjectMember_ProjectId_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (ProjectMember_ProjectId_Field) _Column() string { return "project_id" }
type ProjectMember_CreatedAt_Field struct {
_set bool
_value time.Time
}
func ProjectMember_CreatedAt(v time.Time) ProjectMember_CreatedAt_Field {
return ProjectMember_CreatedAt_Field{_set: true, _value: v}
}
func (f ProjectMember_CreatedAt_Field) value() interface{} {
if !f._set {
return nil
}
return f._value
}
func (ProjectMember_CreatedAt_Field) _Column() string { return "created_at" }
func toUTC(t time.Time) time.Time {
return t.UTC()
}
func toDate(t time.Time) time.Time {
// keep up the minute portion so that translations between timezones will
// continue to reflect properly.
return t.Truncate(time.Minute)
}
//
// runtime support for building sql statements
//
type __sqlbundle_SQL interface {
Render() string
private()
}
type __sqlbundle_Dialect interface {
Rebind(sql string) string
}
type __sqlbundle_RenderOp int
const (
__sqlbundle_NoFlatten __sqlbundle_RenderOp = iota
__sqlbundle_NoTerminate
)
func __sqlbundle_Render(dialect __sqlbundle_Dialect, sql __sqlbundle_SQL, ops ...__sqlbundle_RenderOp) string {
out := sql.Render()
flatten := true
terminate := true
for _, op := range ops {
switch op {
case __sqlbundle_NoFlatten:
flatten = false
case __sqlbundle_NoTerminate:
terminate = false
}
}
if flatten {
out = __sqlbundle_flattenSQL(out)
}
if terminate {
out += ";"
}
return dialect.Rebind(out)
}
var __sqlbundle_reSpace = regexp.MustCompile(`\s+`)
func __sqlbundle_flattenSQL(s string) string {
return strings.TrimSpace(__sqlbundle_reSpace.ReplaceAllString(s, " "))
}
// this type is specially named to match up with the name returned by the
// dialect impl in the sql package.
type __sqlbundle_postgres struct{}
func (p __sqlbundle_postgres) Rebind(sql string) string {
out := make([]byte, 0, len(sql)+10)
j := 1
for i := 0; i < len(sql); i++ {
ch := sql[i]
if ch != '?' {
out = append(out, ch)
continue
}
out = append(out, '$')
out = append(out, strconv.Itoa(j)...)
j++
}
return string(out)
}
// this type is specially named to match up with the name returned by the
// dialect impl in the sql package.
type __sqlbundle_sqlite3 struct{}
func (s __sqlbundle_sqlite3) Rebind(sql string) string {
return sql
}
type __sqlbundle_Literal string
func (__sqlbundle_Literal) private() {}
func (l __sqlbundle_Literal) Render() string { return string(l) }
type __sqlbundle_Literals struct {
Join string
SQLs []__sqlbundle_SQL
}
func (__sqlbundle_Literals) private() {}
func (l __sqlbundle_Literals) Render() string {
var out bytes.Buffer
first := true
for _, sql := range l.SQLs {
if sql == nil {
continue
}
if !first {
out.WriteString(l.Join)
}
first = false
out.WriteString(sql.Render())
}
return out.String()
}
type __sqlbundle_Condition struct {
// set at compile/embed time
Name string
Left string
Equal bool
Right string
// set at runtime
Null bool
}
func (*__sqlbundle_Condition) private() {}
func (c *__sqlbundle_Condition) Render() string {
switch {
case c.Equal && c.Null:
return c.Left + " is null"
case c.Equal && !c.Null:
return c.Left + " = " + c.Right
case !c.Equal && c.Null:
return c.Left + " is not null"
case !c.Equal && !c.Null:
return c.Left + " != " + c.Right
default:
panic("unhandled case")
}
}
type __sqlbundle_Hole struct {
// set at compiile/embed time
Name string
// set at runtime
SQL __sqlbundle_SQL
}
func (*__sqlbundle_Hole) private() {}
func (h *__sqlbundle_Hole) Render() string { return h.SQL.Render() }
//
// end runtime support for building sql statements
//
func (obj *sqlite3Impl) Create_User(ctx context.Context,
user_id User_Id_Field,
user_first_name User_FirstName_Field,
user_last_name User_LastName_Field,
user_email User_Email_Field,
user_password_hash User_PasswordHash_Field) (
user *User, err error) {
__now := obj.db.Hooks.Now().UTC()
__id_val := user_id.value()
__first_name_val := user_first_name.value()
__last_name_val := user_last_name.value()
__email_val := user_email.value()
__password_hash_val := user_password_hash.value()
__created_at_val := __now
var __embed_stmt = __sqlbundle_Literal("INSERT INTO users ( id, first_name, last_name, email, password_hash, created_at ) VALUES ( ?, ?, ?, ?, ?, ? )")
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __id_val, __first_name_val, __last_name_val, __email_val, __password_hash_val, __created_at_val)
__res, err := obj.driver.Exec(__stmt, __id_val, __first_name_val, __last_name_val, __email_val, __password_hash_val, __created_at_val)
if err != nil {
return nil, obj.makeErr(err)
}
__pk, err := __res.LastInsertId()
if err != nil {
return nil, obj.makeErr(err)
}
return obj.getLastUser(ctx, __pk)
}
func (obj *sqlite3Impl) Create_Company(ctx context.Context,
company_user_id Company_UserId_Field,
company_name Company_Name_Field,
company_address Company_Address_Field,
company_country Company_Country_Field,
company_city Company_City_Field,
company_state Company_State_Field,
company_postal_code Company_PostalCode_Field) (
company *Company, err error) {
__now := obj.db.Hooks.Now().UTC()
__user_id_val := company_user_id.value()
__name_val := company_name.value()
__address_val := company_address.value()
__country_val := company_country.value()
__city_val := company_city.value()
__state_val := company_state.value()
__postal_code_val := company_postal_code.value()
__created_at_val := __now
var __embed_stmt = __sqlbundle_Literal("INSERT INTO companies ( user_id, name, address, country, city, state, postal_code, created_at ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )")
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __user_id_val, __name_val, __address_val, __country_val, __city_val, __state_val, __postal_code_val, __created_at_val)
__res, err := obj.driver.Exec(__stmt, __user_id_val, __name_val, __address_val, __country_val, __city_val, __state_val, __postal_code_val, __created_at_val)
if err != nil {
return nil, obj.makeErr(err)
}
__pk, err := __res.LastInsertId()
if err != nil {
return nil, obj.makeErr(err)
}
return obj.getLastCompany(ctx, __pk)
}
func (obj *sqlite3Impl) Create_Project(ctx context.Context,
project_id Project_Id_Field,
project_name Project_Name_Field,
project_company_name Project_CompanyName_Field,
project_description Project_Description_Field,
project_terms_accepted Project_TermsAccepted_Field,
optional Project_Create_Fields) (
project *Project, err error) {
__now := obj.db.Hooks.Now().UTC()
__id_val := project_id.value()
__owner_id_val := optional.OwnerId.value()
__name_val := project_name.value()
__company_name_val := project_company_name.value()
__description_val := project_description.value()
__terms_accepted_val := project_terms_accepted.value()
__created_at_val := __now
var __embed_stmt = __sqlbundle_Literal("INSERT INTO projects ( id, owner_id, name, company_name, description, terms_accepted, created_at ) VALUES ( ?, ?, ?, ?, ?, ?, ? )")
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __id_val, __owner_id_val, __name_val, __company_name_val, __description_val, __terms_accepted_val, __created_at_val)
__res, err := obj.driver.Exec(__stmt, __id_val, __owner_id_val, __name_val, __company_name_val, __description_val, __terms_accepted_val, __created_at_val)
if err != nil {
return nil, obj.makeErr(err)
}
__pk, err := __res.LastInsertId()
if err != nil {
return nil, obj.makeErr(err)
}
return obj.getLastProject(ctx, __pk)
}
func (obj *sqlite3Impl) Create_ProjectMember(ctx context.Context,
project_member_id ProjectMember_Id_Field,
project_member_member_id ProjectMember_MemberId_Field,
project_member_project_id ProjectMember_ProjectId_Field) (
project_member *ProjectMember, err error) {
__now := obj.db.Hooks.Now().UTC()
__id_val := project_member_id.value()
__member_id_val := project_member_member_id.value()
__project_id_val := project_member_project_id.value()
__created_at_val := __now
var __embed_stmt = __sqlbundle_Literal("INSERT INTO project_members ( id, member_id, project_id, created_at ) VALUES ( ?, ?, ?, ? )")
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __id_val, __member_id_val, __project_id_val, __created_at_val)
__res, err := obj.driver.Exec(__stmt, __id_val, __member_id_val, __project_id_val, __created_at_val)
if err != nil {
return nil, obj.makeErr(err)
}
__pk, err := __res.LastInsertId()
if err != nil {
return nil, obj.makeErr(err)
}
return obj.getLastProjectMember(ctx, __pk)
}
func (obj *sqlite3Impl) Get_User_By_Email_And_PasswordHash(ctx context.Context,
user_email User_Email_Field,
user_password_hash User_PasswordHash_Field) (
user *User, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT users.id, users.first_name, users.last_name, users.email, users.password_hash, users.created_at FROM users WHERE users.email = ? AND users.password_hash = ?")
var __values []interface{}
__values = append(__values, user_email.value(), user_password_hash.value())
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
user = &User{}
err = obj.driver.QueryRow(__stmt, __values...).Scan(&user.Id, &user.FirstName, &user.LastName, &user.Email, &user.PasswordHash, &user.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
return user, nil
}
func (obj *sqlite3Impl) Get_User_By_Id(ctx context.Context,
user_id User_Id_Field) (
user *User, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT users.id, users.first_name, users.last_name, users.email, users.password_hash, users.created_at FROM users WHERE users.id = ?")
var __values []interface{}
__values = append(__values, user_id.value())
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
user = &User{}
err = obj.driver.QueryRow(__stmt, __values...).Scan(&user.Id, &user.FirstName, &user.LastName, &user.Email, &user.PasswordHash, &user.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
return user, nil
}
func (obj *sqlite3Impl) Get_Company_By_UserId(ctx context.Context,
company_user_id Company_UserId_Field) (
company *Company, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT companies.user_id, companies.name, companies.address, companies.country, companies.city, companies.state, companies.postal_code, companies.created_at FROM companies WHERE companies.user_id = ?")
var __values []interface{}
__values = append(__values, company_user_id.value())
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
company = &Company{}
err = obj.driver.QueryRow(__stmt, __values...).Scan(&company.UserId, &company.Name, &company.Address, &company.Country, &company.City, &company.State, &company.PostalCode, &company.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
return company, nil
}
func (obj *sqlite3Impl) All_Project(ctx context.Context) (
rows []*Project, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT projects.id, projects.owner_id, projects.name, projects.company_name, projects.description, projects.terms_accepted, projects.created_at FROM projects")
var __values []interface{}
__values = append(__values)
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
__rows, err := obj.driver.Query(__stmt, __values...)
if err != nil {
return nil, obj.makeErr(err)
}
defer __rows.Close()
for __rows.Next() {
project := &Project{}
err = __rows.Scan(&project.Id, &project.OwnerId, &project.Name, &project.CompanyName, &project.Description, &project.TermsAccepted, &project.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
rows = append(rows, project)
}
if err := __rows.Err(); err != nil {
return nil, obj.makeErr(err)
}
return rows, nil
}
func (obj *sqlite3Impl) Get_Project_By_Id(ctx context.Context,
project_id Project_Id_Field) (
project *Project, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT projects.id, projects.owner_id, projects.name, projects.company_name, projects.description, projects.terms_accepted, projects.created_at FROM projects WHERE projects.id = ?")
var __values []interface{}
__values = append(__values, project_id.value())
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
project = &Project{}
err = obj.driver.QueryRow(__stmt, __values...).Scan(&project.Id, &project.OwnerId, &project.Name, &project.CompanyName, &project.Description, &project.TermsAccepted, &project.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
return project, nil
}
func (obj *sqlite3Impl) All_Project_By_OwnerId(ctx context.Context,
project_owner_id Project_OwnerId_Field) (
rows []*Project, err error) {
var __cond_0 = &__sqlbundle_Condition{Left: "projects.owner_id", Equal: true, Right: "?", Null: true}
var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("SELECT projects.id, projects.owner_id, projects.name, projects.company_name, projects.description, projects.terms_accepted, projects.created_at FROM projects WHERE "), __cond_0}}
var __values []interface{}
__values = append(__values)
if !project_owner_id.isnull() {
__cond_0.Null = false
__values = append(__values, project_owner_id.value())
}
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
__rows, err := obj.driver.Query(__stmt, __values...)
if err != nil {
return nil, obj.makeErr(err)
}
defer __rows.Close()
for __rows.Next() {
project := &Project{}
err = __rows.Scan(&project.Id, &project.OwnerId, &project.Name, &project.CompanyName, &project.Description, &project.TermsAccepted, &project.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
rows = append(rows, project)
}
if err := __rows.Err(); err != nil {
return nil, obj.makeErr(err)
}
return rows, nil
}
func (obj *sqlite3Impl) All_Project_By_ProjectMember_MemberId(ctx context.Context,
project_member_member_id ProjectMember_MemberId_Field) (
rows []*Project, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT projects.id, projects.owner_id, projects.name, projects.company_name, projects.description, projects.terms_accepted, projects.created_at FROM projects JOIN project_members ON projects.id = project_members.project_id WHERE project_members.member_id = ?")
var __values []interface{}
__values = append(__values, project_member_member_id.value())
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
__rows, err := obj.driver.Query(__stmt, __values...)
if err != nil {
return nil, obj.makeErr(err)
}
defer __rows.Close()
for __rows.Next() {
project := &Project{}
err = __rows.Scan(&project.Id, &project.OwnerId, &project.Name, &project.CompanyName, &project.Description, &project.TermsAccepted, &project.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
rows = append(rows, project)
}
if err := __rows.Err(); err != nil {
return nil, obj.makeErr(err)
}
return rows, nil
}
func (obj *sqlite3Impl) All_ProjectMember(ctx context.Context) (
rows []*ProjectMember, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT project_members.id, project_members.member_id, project_members.project_id, project_members.created_at FROM project_members")
var __values []interface{}
__values = append(__values)
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
__rows, err := obj.driver.Query(__stmt, __values...)
if err != nil {
return nil, obj.makeErr(err)
}
defer __rows.Close()
for __rows.Next() {
project_member := &ProjectMember{}
err = __rows.Scan(&project_member.Id, &project_member.MemberId, &project_member.ProjectId, &project_member.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
rows = append(rows, project_member)
}
if err := __rows.Err(); err != nil {
return nil, obj.makeErr(err)
}
return rows, nil
}
func (obj *sqlite3Impl) All_ProjectMember_By_ProjectId(ctx context.Context,
project_member_project_id ProjectMember_ProjectId_Field) (
rows []*ProjectMember, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT project_members.id, project_members.member_id, project_members.project_id, project_members.created_at FROM project_members WHERE project_members.project_id = ?")
var __values []interface{}
__values = append(__values, project_member_project_id.value())
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
__rows, err := obj.driver.Query(__stmt, __values...)
if err != nil {
return nil, obj.makeErr(err)
}
defer __rows.Close()
for __rows.Next() {
project_member := &ProjectMember{}
err = __rows.Scan(&project_member.Id, &project_member.MemberId, &project_member.ProjectId, &project_member.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
rows = append(rows, project_member)
}
if err := __rows.Err(); err != nil {
return nil, obj.makeErr(err)
}
return rows, nil
}
func (obj *sqlite3Impl) Get_ProjectMember_By_MemberId(ctx context.Context,
project_member_member_id ProjectMember_MemberId_Field) (
project_member *ProjectMember, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT project_members.id, project_members.member_id, project_members.project_id, project_members.created_at FROM project_members WHERE project_members.member_id = ? LIMIT 2")
var __values []interface{}
__values = append(__values, project_member_member_id.value())
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
__rows, err := obj.driver.Query(__stmt, __values...)
if err != nil {
return nil, obj.makeErr(err)
}
defer __rows.Close()
if !__rows.Next() {
if err := __rows.Err(); err != nil {
return nil, obj.makeErr(err)
}
return nil, makeErr(sql.ErrNoRows)
}
project_member = &ProjectMember{}
err = __rows.Scan(&project_member.Id, &project_member.MemberId, &project_member.ProjectId, &project_member.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
if __rows.Next() {
return nil, tooManyRows("ProjectMember_By_MemberId")
}
if err := __rows.Err(); err != nil {
return nil, obj.makeErr(err)
}
return project_member, nil
}
func (obj *sqlite3Impl) Get_ProjectMember_By_Id(ctx context.Context,
project_member_id ProjectMember_Id_Field) (
project_member *ProjectMember, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT project_members.id, project_members.member_id, project_members.project_id, project_members.created_at FROM project_members WHERE project_members.id = ?")
var __values []interface{}
__values = append(__values, project_member_id.value())
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
project_member = &ProjectMember{}
err = obj.driver.QueryRow(__stmt, __values...).Scan(&project_member.Id, &project_member.MemberId, &project_member.ProjectId, &project_member.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
return project_member, nil
}
func (obj *sqlite3Impl) Update_User_By_Id(ctx context.Context,
user_id User_Id_Field,
update User_Update_Fields) (
user *User, err error) {
var __sets = &__sqlbundle_Hole{}
var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("UPDATE users SET "), __sets, __sqlbundle_Literal(" WHERE users.id = ?")}}
__sets_sql := __sqlbundle_Literals{Join: ", "}
var __values []interface{}
var __args []interface{}
if update.FirstName._set {
__values = append(__values, update.FirstName.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("first_name = ?"))
}
if update.LastName._set {
__values = append(__values, update.LastName.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("last_name = ?"))
}
if update.Email._set {
__values = append(__values, update.Email.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("email = ?"))
}
if update.PasswordHash._set {
__values = append(__values, update.PasswordHash.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("password_hash = ?"))
}
if len(__sets_sql.SQLs) == 0 {
return nil, emptyUpdate()
}
__args = append(__args, user_id.value())
__values = append(__values, __args...)
__sets.SQL = __sets_sql
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
user = &User{}
_, err = obj.driver.Exec(__stmt, __values...)
if err != nil {
return nil, obj.makeErr(err)
}
var __embed_stmt_get = __sqlbundle_Literal("SELECT users.id, users.first_name, users.last_name, users.email, users.password_hash, users.created_at FROM users WHERE users.id = ?")
var __stmt_get = __sqlbundle_Render(obj.dialect, __embed_stmt_get)
obj.logStmt("(IMPLIED) "+__stmt_get, __args...)
err = obj.driver.QueryRow(__stmt_get, __args...).Scan(&user.Id, &user.FirstName, &user.LastName, &user.Email, &user.PasswordHash, &user.CreatedAt)
if err == sql.ErrNoRows {
return nil, nil
}
if err != nil {
return nil, obj.makeErr(err)
}
return user, nil
}
func (obj *sqlite3Impl) Update_Company_By_UserId(ctx context.Context,
company_user_id Company_UserId_Field,
update Company_Update_Fields) (
company *Company, err error) {
var __sets = &__sqlbundle_Hole{}
var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("UPDATE companies SET "), __sets, __sqlbundle_Literal(" WHERE companies.user_id = ?")}}
__sets_sql := __sqlbundle_Literals{Join: ", "}
var __values []interface{}
var __args []interface{}
if update.Name._set {
__values = append(__values, update.Name.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("name = ?"))
}
if update.Address._set {
__values = append(__values, update.Address.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("address = ?"))
}
if update.Country._set {
__values = append(__values, update.Country.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("country = ?"))
}
if update.City._set {
__values = append(__values, update.City.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("city = ?"))
}
if update.State._set {
__values = append(__values, update.State.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("state = ?"))
}
if update.PostalCode._set {
__values = append(__values, update.PostalCode.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("postal_code = ?"))
}
if len(__sets_sql.SQLs) == 0 {
return nil, emptyUpdate()
}
__args = append(__args, company_user_id.value())
__values = append(__values, __args...)
__sets.SQL = __sets_sql
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
company = &Company{}
_, err = obj.driver.Exec(__stmt, __values...)
if err != nil {
return nil, obj.makeErr(err)
}
var __embed_stmt_get = __sqlbundle_Literal("SELECT companies.user_id, companies.name, companies.address, companies.country, companies.city, companies.state, companies.postal_code, companies.created_at FROM companies WHERE companies.user_id = ?")
var __stmt_get = __sqlbundle_Render(obj.dialect, __embed_stmt_get)
obj.logStmt("(IMPLIED) "+__stmt_get, __args...)
err = obj.driver.QueryRow(__stmt_get, __args...).Scan(&company.UserId, &company.Name, &company.Address, &company.Country, &company.City, &company.State, &company.PostalCode, &company.CreatedAt)
if err == sql.ErrNoRows {
return nil, nil
}
if err != nil {
return nil, obj.makeErr(err)
}
return company, nil
}
func (obj *sqlite3Impl) Update_Project_By_Id(ctx context.Context,
project_id Project_Id_Field,
update Project_Update_Fields) (
project *Project, err error) {
var __sets = &__sqlbundle_Hole{}
var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("UPDATE projects SET "), __sets, __sqlbundle_Literal(" WHERE projects.id = ?")}}
__sets_sql := __sqlbundle_Literals{Join: ", "}
var __values []interface{}
var __args []interface{}
if update.OwnerId._set {
__values = append(__values, update.OwnerId.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("owner_id = ?"))
}
if update.Description._set {
__values = append(__values, update.Description.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("description = ?"))
}
if update.TermsAccepted._set {
__values = append(__values, update.TermsAccepted.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("terms_accepted = ?"))
}
if len(__sets_sql.SQLs) == 0 {
return nil, emptyUpdate()
}
__args = append(__args, project_id.value())
__values = append(__values, __args...)
__sets.SQL = __sets_sql
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
project = &Project{}
_, err = obj.driver.Exec(__stmt, __values...)
if err != nil {
return nil, obj.makeErr(err)
}
var __embed_stmt_get = __sqlbundle_Literal("SELECT projects.id, projects.owner_id, projects.name, projects.company_name, projects.description, projects.terms_accepted, projects.created_at FROM projects WHERE projects.id = ?")
var __stmt_get = __sqlbundle_Render(obj.dialect, __embed_stmt_get)
obj.logStmt("(IMPLIED) "+__stmt_get, __args...)
err = obj.driver.QueryRow(__stmt_get, __args...).Scan(&project.Id, &project.OwnerId, &project.Name, &project.CompanyName, &project.Description, &project.TermsAccepted, &project.CreatedAt)
if err == sql.ErrNoRows {
return nil, nil
}
if err != nil {
return nil, obj.makeErr(err)
}
return project, nil
}
func (obj *sqlite3Impl) Update_ProjectMember_By_Id(ctx context.Context,
project_member_id ProjectMember_Id_Field,
update ProjectMember_Update_Fields) (
project_member *ProjectMember, err error) {
var __sets = &__sqlbundle_Hole{}
var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("UPDATE project_members SET "), __sets, __sqlbundle_Literal(" WHERE project_members.id = ?")}}
__sets_sql := __sqlbundle_Literals{Join: ", "}
var __values []interface{}
var __args []interface{}
if update.ProjectId._set {
__values = append(__values, update.ProjectId.value())
__sets_sql.SQLs = append(__sets_sql.SQLs, __sqlbundle_Literal("project_id = ?"))
}
if len(__sets_sql.SQLs) == 0 {
return nil, emptyUpdate()
}
__args = append(__args, project_member_id.value())
__values = append(__values, __args...)
__sets.SQL = __sets_sql
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
project_member = &ProjectMember{}
_, err = obj.driver.Exec(__stmt, __values...)
if err != nil {
return nil, obj.makeErr(err)
}
var __embed_stmt_get = __sqlbundle_Literal("SELECT project_members.id, project_members.member_id, project_members.project_id, project_members.created_at FROM project_members WHERE project_members.id = ?")
var __stmt_get = __sqlbundle_Render(obj.dialect, __embed_stmt_get)
obj.logStmt("(IMPLIED) "+__stmt_get, __args...)
err = obj.driver.QueryRow(__stmt_get, __args...).Scan(&project_member.Id, &project_member.MemberId, &project_member.ProjectId, &project_member.CreatedAt)
if err == sql.ErrNoRows {
return nil, nil
}
if err != nil {
return nil, obj.makeErr(err)
}
return project_member, nil
}
func (obj *sqlite3Impl) Delete_User_By_Id(ctx context.Context,
user_id User_Id_Field) (
deleted bool, err error) {
var __embed_stmt = __sqlbundle_Literal("DELETE FROM users WHERE users.id = ?")
var __values []interface{}
__values = append(__values, user_id.value())
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
__res, err := obj.driver.Exec(__stmt, __values...)
if err != nil {
return false, obj.makeErr(err)
}
__count, err := __res.RowsAffected()
if err != nil {
return false, obj.makeErr(err)
}
return __count > 0, nil
}
func (obj *sqlite3Impl) Delete_Company_By_UserId(ctx context.Context,
company_user_id Company_UserId_Field) (
deleted bool, err error) {
var __embed_stmt = __sqlbundle_Literal("DELETE FROM companies WHERE companies.user_id = ?")
var __values []interface{}
__values = append(__values, company_user_id.value())
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
__res, err := obj.driver.Exec(__stmt, __values...)
if err != nil {
return false, obj.makeErr(err)
}
__count, err := __res.RowsAffected()
if err != nil {
return false, obj.makeErr(err)
}
return __count > 0, nil
}
func (obj *sqlite3Impl) Delete_Project_By_Id(ctx context.Context,
project_id Project_Id_Field) (
deleted bool, err error) {
var __embed_stmt = __sqlbundle_Literal("DELETE FROM projects WHERE projects.id = ?")
var __values []interface{}
__values = append(__values, project_id.value())
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
__res, err := obj.driver.Exec(__stmt, __values...)
if err != nil {
return false, obj.makeErr(err)
}
__count, err := __res.RowsAffected()
if err != nil {
return false, obj.makeErr(err)
}
return __count > 0, nil
}
func (obj *sqlite3Impl) Delete_ProjectMember_By_Id(ctx context.Context,
project_member_id ProjectMember_Id_Field) (
deleted bool, err error) {
var __embed_stmt = __sqlbundle_Literal("DELETE FROM project_members WHERE project_members.id = ?")
var __values []interface{}
__values = append(__values, project_member_id.value())
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, __values...)
__res, err := obj.driver.Exec(__stmt, __values...)
if err != nil {
return false, obj.makeErr(err)
}
__count, err := __res.RowsAffected()
if err != nil {
return false, obj.makeErr(err)
}
return __count > 0, nil
}
func (obj *sqlite3Impl) getLastUser(ctx context.Context,
pk int64) (
user *User, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT users.id, users.first_name, users.last_name, users.email, users.password_hash, users.created_at FROM users WHERE _rowid_ = ?")
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, pk)
user = &User{}
err = obj.driver.QueryRow(__stmt, pk).Scan(&user.Id, &user.FirstName, &user.LastName, &user.Email, &user.PasswordHash, &user.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
return user, nil
}
func (obj *sqlite3Impl) getLastCompany(ctx context.Context,
pk int64) (
company *Company, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT companies.user_id, companies.name, companies.address, companies.country, companies.city, companies.state, companies.postal_code, companies.created_at FROM companies WHERE _rowid_ = ?")
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, pk)
company = &Company{}
err = obj.driver.QueryRow(__stmt, pk).Scan(&company.UserId, &company.Name, &company.Address, &company.Country, &company.City, &company.State, &company.PostalCode, &company.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
return company, nil
}
func (obj *sqlite3Impl) getLastProject(ctx context.Context,
pk int64) (
project *Project, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT projects.id, projects.owner_id, projects.name, projects.company_name, projects.description, projects.terms_accepted, projects.created_at FROM projects WHERE _rowid_ = ?")
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, pk)
project = &Project{}
err = obj.driver.QueryRow(__stmt, pk).Scan(&project.Id, &project.OwnerId, &project.Name, &project.CompanyName, &project.Description, &project.TermsAccepted, &project.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
return project, nil
}
func (obj *sqlite3Impl) getLastProjectMember(ctx context.Context,
pk int64) (
project_member *ProjectMember, err error) {
var __embed_stmt = __sqlbundle_Literal("SELECT project_members.id, project_members.member_id, project_members.project_id, project_members.created_at FROM project_members WHERE _rowid_ = ?")
var __stmt = __sqlbundle_Render(obj.dialect, __embed_stmt)
obj.logStmt(__stmt, pk)
project_member = &ProjectMember{}
err = obj.driver.QueryRow(__stmt, pk).Scan(&project_member.Id, &project_member.MemberId, &project_member.ProjectId, &project_member.CreatedAt)
if err != nil {
return nil, obj.makeErr(err)
}
return project_member, nil
}
func (impl sqlite3Impl) isConstraintError(err error) (
constraint string, ok bool) {
if e, ok := err.(sqlite3.Error); ok {
if e.Code == sqlite3.ErrConstraint {
msg := err.Error()
colon := strings.LastIndex(msg, ":")
if colon != -1 {
return strings.TrimSpace(msg[colon:]), true
}
return "", true
}
}
return "", false
}
func (obj *sqlite3Impl) deleteAll(ctx context.Context) (count int64, err error) {
var __res sql.Result
var __count int64
__res, err = obj.driver.Exec("DELETE FROM project_members;")
if err != nil {
return 0, obj.makeErr(err)
}
__count, err = __res.RowsAffected()
if err != nil {
return 0, obj.makeErr(err)
}
count += __count
__res, err = obj.driver.Exec("DELETE FROM projects;")
if err != nil {
return 0, obj.makeErr(err)
}
__count, err = __res.RowsAffected()
if err != nil {
return 0, obj.makeErr(err)
}
count += __count
__res, err = obj.driver.Exec("DELETE FROM companies;")
if err != nil {
return 0, obj.makeErr(err)
}
__count, err = __res.RowsAffected()
if err != nil {
return 0, obj.makeErr(err)
}
count += __count
__res, err = obj.driver.Exec("DELETE FROM users;")
if err != nil {
return 0, obj.makeErr(err)
}
__count, err = __res.RowsAffected()
if err != nil {
return 0, obj.makeErr(err)
}
count += __count
return count, nil
}
type Rx struct {
db *DB
tx *Tx
}
func (rx *Rx) UnsafeTx(ctx context.Context) (unsafe_tx *sql.Tx, err error) {
tx, err := rx.getTx(ctx)
if err != nil {
return nil, err
}
return tx.Tx, nil
}
func (rx *Rx) getTx(ctx context.Context) (tx *Tx, err error) {
if rx.tx == nil {
if rx.tx, err = rx.db.Open(ctx); err != nil {
return nil, err
}
}
return rx.tx, nil
}
func (rx *Rx) Rebind(s string) string {
return rx.db.Rebind(s)
}
func (rx *Rx) Commit() (err error) {
if rx.tx != nil {
err = rx.tx.Commit()
rx.tx = nil
}
return err
}
func (rx *Rx) Rollback() (err error) {
if rx.tx != nil {
err = rx.tx.Rollback()
rx.tx = nil
}
return err
}
func (rx *Rx) All_Project(ctx context.Context) (
rows []*Project, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.All_Project(ctx)
}
func (rx *Rx) All_ProjectMember(ctx context.Context) (
rows []*ProjectMember, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.All_ProjectMember(ctx)
}
func (rx *Rx) All_ProjectMember_By_ProjectId(ctx context.Context,
project_member_project_id ProjectMember_ProjectId_Field) (
rows []*ProjectMember, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.All_ProjectMember_By_ProjectId(ctx, project_member_project_id)
}
func (rx *Rx) All_Project_By_OwnerId(ctx context.Context,
project_owner_id Project_OwnerId_Field) (
rows []*Project, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.All_Project_By_OwnerId(ctx, project_owner_id)
}
func (rx *Rx) All_Project_By_ProjectMember_MemberId(ctx context.Context,
project_member_member_id ProjectMember_MemberId_Field) (
rows []*Project, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.All_Project_By_ProjectMember_MemberId(ctx, project_member_member_id)
}
func (rx *Rx) Create_Company(ctx context.Context,
company_user_id Company_UserId_Field,
company_name Company_Name_Field,
company_address Company_Address_Field,
company_country Company_Country_Field,
company_city Company_City_Field,
company_state Company_State_Field,
company_postal_code Company_PostalCode_Field) (
company *Company, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Create_Company(ctx, company_user_id, company_name, company_address, company_country, company_city, company_state, company_postal_code)
}
func (rx *Rx) Create_Project(ctx context.Context,
project_id Project_Id_Field,
project_name Project_Name_Field,
project_company_name Project_CompanyName_Field,
project_description Project_Description_Field,
project_terms_accepted Project_TermsAccepted_Field,
optional Project_Create_Fields) (
project *Project, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Create_Project(ctx, project_id, project_name, project_company_name, project_description, project_terms_accepted, optional)
}
func (rx *Rx) Create_ProjectMember(ctx context.Context,
project_member_id ProjectMember_Id_Field,
project_member_member_id ProjectMember_MemberId_Field,
project_member_project_id ProjectMember_ProjectId_Field) (
project_member *ProjectMember, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Create_ProjectMember(ctx, project_member_id, project_member_member_id, project_member_project_id)
}
func (rx *Rx) Create_User(ctx context.Context,
user_id User_Id_Field,
user_first_name User_FirstName_Field,
user_last_name User_LastName_Field,
user_email User_Email_Field,
user_password_hash User_PasswordHash_Field) (
user *User, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Create_User(ctx, user_id, user_first_name, user_last_name, user_email, user_password_hash)
}
func (rx *Rx) Delete_Company_By_UserId(ctx context.Context,
company_user_id Company_UserId_Field) (
deleted bool, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Delete_Company_By_UserId(ctx, company_user_id)
}
func (rx *Rx) Delete_ProjectMember_By_Id(ctx context.Context,
project_member_id ProjectMember_Id_Field) (
deleted bool, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Delete_ProjectMember_By_Id(ctx, project_member_id)
}
func (rx *Rx) Delete_Project_By_Id(ctx context.Context,
project_id Project_Id_Field) (
deleted bool, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Delete_Project_By_Id(ctx, project_id)
}
func (rx *Rx) Delete_User_By_Id(ctx context.Context,
user_id User_Id_Field) (
deleted bool, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Delete_User_By_Id(ctx, user_id)
}
func (rx *Rx) Get_Company_By_UserId(ctx context.Context,
company_user_id Company_UserId_Field) (
company *Company, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Get_Company_By_UserId(ctx, company_user_id)
}
func (rx *Rx) Get_ProjectMember_By_Id(ctx context.Context,
project_member_id ProjectMember_Id_Field) (
project_member *ProjectMember, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Get_ProjectMember_By_Id(ctx, project_member_id)
}
func (rx *Rx) Get_ProjectMember_By_MemberId(ctx context.Context,
project_member_member_id ProjectMember_MemberId_Field) (
project_member *ProjectMember, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Get_ProjectMember_By_MemberId(ctx, project_member_member_id)
}
func (rx *Rx) Get_Project_By_Id(ctx context.Context,
project_id Project_Id_Field) (
project *Project, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Get_Project_By_Id(ctx, project_id)
}
func (rx *Rx) Get_User_By_Email_And_PasswordHash(ctx context.Context,
user_email User_Email_Field,
user_password_hash User_PasswordHash_Field) (
user *User, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Get_User_By_Email_And_PasswordHash(ctx, user_email, user_password_hash)
}
func (rx *Rx) Get_User_By_Id(ctx context.Context,
user_id User_Id_Field) (
user *User, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Get_User_By_Id(ctx, user_id)
}
func (rx *Rx) Update_Company_By_UserId(ctx context.Context,
company_user_id Company_UserId_Field,
update Company_Update_Fields) (
company *Company, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Update_Company_By_UserId(ctx, company_user_id, update)
}
func (rx *Rx) Update_ProjectMember_By_Id(ctx context.Context,
project_member_id ProjectMember_Id_Field,
update ProjectMember_Update_Fields) (
project_member *ProjectMember, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Update_ProjectMember_By_Id(ctx, project_member_id, update)
}
func (rx *Rx) Update_Project_By_Id(ctx context.Context,
project_id Project_Id_Field,
update Project_Update_Fields) (
project *Project, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Update_Project_By_Id(ctx, project_id, update)
}
func (rx *Rx) Update_User_By_Id(ctx context.Context,
user_id User_Id_Field,
update User_Update_Fields) (
user *User, err error) {
var tx *Tx
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Update_User_By_Id(ctx, user_id, update)
}
type Methods interface {
All_Project(ctx context.Context) (
rows []*Project, err error)
All_ProjectMember(ctx context.Context) (
rows []*ProjectMember, err error)
All_ProjectMember_By_ProjectId(ctx context.Context,
project_member_project_id ProjectMember_ProjectId_Field) (
rows []*ProjectMember, err error)
All_Project_By_OwnerId(ctx context.Context,
project_owner_id Project_OwnerId_Field) (
rows []*Project, err error)
All_Project_By_ProjectMember_MemberId(ctx context.Context,
project_member_member_id ProjectMember_MemberId_Field) (
rows []*Project, err error)
Create_Company(ctx context.Context,
company_user_id Company_UserId_Field,
company_name Company_Name_Field,
company_address Company_Address_Field,
company_country Company_Country_Field,
company_city Company_City_Field,
company_state Company_State_Field,
company_postal_code Company_PostalCode_Field) (
company *Company, err error)
Create_Project(ctx context.Context,
project_id Project_Id_Field,
project_name Project_Name_Field,
project_company_name Project_CompanyName_Field,
project_description Project_Description_Field,
project_terms_accepted Project_TermsAccepted_Field,
optional Project_Create_Fields) (
project *Project, err error)
Create_ProjectMember(ctx context.Context,
project_member_id ProjectMember_Id_Field,
project_member_member_id ProjectMember_MemberId_Field,
project_member_project_id ProjectMember_ProjectId_Field) (
project_member *ProjectMember, err error)
Create_User(ctx context.Context,
user_id User_Id_Field,
user_first_name User_FirstName_Field,
user_last_name User_LastName_Field,
user_email User_Email_Field,
user_password_hash User_PasswordHash_Field) (
user *User, err error)
Delete_Company_By_UserId(ctx context.Context,
company_user_id Company_UserId_Field) (
deleted bool, err error)
Delete_ProjectMember_By_Id(ctx context.Context,
project_member_id ProjectMember_Id_Field) (
deleted bool, err error)
Delete_Project_By_Id(ctx context.Context,
project_id Project_Id_Field) (
deleted bool, err error)
Delete_User_By_Id(ctx context.Context,
user_id User_Id_Field) (
deleted bool, err error)
Get_Company_By_UserId(ctx context.Context,
company_user_id Company_UserId_Field) (
company *Company, err error)
Get_ProjectMember_By_Id(ctx context.Context,
project_member_id ProjectMember_Id_Field) (
project_member *ProjectMember, err error)
Get_ProjectMember_By_MemberId(ctx context.Context,
project_member_member_id ProjectMember_MemberId_Field) (
project_member *ProjectMember, err error)
Get_Project_By_Id(ctx context.Context,
project_id Project_Id_Field) (
project *Project, err error)
Get_User_By_Email_And_PasswordHash(ctx context.Context,
user_email User_Email_Field,
user_password_hash User_PasswordHash_Field) (
user *User, err error)
Get_User_By_Id(ctx context.Context,
user_id User_Id_Field) (
user *User, err error)
Update_Company_By_UserId(ctx context.Context,
company_user_id Company_UserId_Field,
update Company_Update_Fields) (
company *Company, err error)
Update_ProjectMember_By_Id(ctx context.Context,
project_member_id ProjectMember_Id_Field,
update ProjectMember_Update_Fields) (
project_member *ProjectMember, err error)
Update_Project_By_Id(ctx context.Context,
project_id Project_Id_Field,
update Project_Update_Fields) (
project *Project, err error)
Update_User_By_Id(ctx context.Context,
user_id User_Id_Field,
update User_Update_Fields) (
user *User, err error)
}
type TxMethods interface {
Methods
Rebind(s string) string
Commit() error
Rollback() error
}
type txMethods interface {
TxMethods
deleteAll(ctx context.Context) (int64, error)
makeErr(err error) error
}
type DBMethods interface {
Methods
Schema() string
Rebind(sql string) string
}
type dbMethods interface {
DBMethods
wrapTx(tx *sql.Tx) txMethods
makeErr(err error) error
}
var sqlite3DriverName = "sqlite3_" + fmt.Sprint(time.Now().UnixNano())
func init() {
sql.Register(sqlite3DriverName, &sqlite3.SQLiteDriver{
ConnectHook: sqlite3SetupConn,
})
}
// SQLite3JournalMode controls the journal_mode pragma for all new connections.
// Since it is read without a mutex, it must be changed to the value you want
// before any Open calls.
var SQLite3JournalMode = "WAL"
func sqlite3SetupConn(conn *sqlite3.SQLiteConn) (err error) {
_, err = conn.Exec("PRAGMA foreign_keys = ON", nil)
if err != nil {
return makeErr(err)
}
_, err = conn.Exec("PRAGMA journal_mode = "+SQLite3JournalMode, nil)
if err != nil {
return makeErr(err)
}
return nil
}
func opensqlite3(source string) (*sql.DB, error) {
return sql.Open(sqlite3DriverName, source)
}