forked from xo/xo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
employeeterritory.xo.go
107 lines (96 loc) · 3.29 KB
/
employeeterritory.xo.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package sqlite3
// Code generated by xo. DO NOT EDIT.
import (
"context"
)
// EmployeeTerritory represents a row from 'employee_territories'.
type EmployeeTerritory struct {
EmployeeID int `json:"employee_id"` // employee_id
TerritoryID string `json:"territory_id"` // territory_id
// xo fields
_exists, _deleted bool
}
// Exists returns true when the EmployeeTerritory exists in the database.
func (et *EmployeeTerritory) Exists() bool {
return et._exists
}
// Deleted returns true when the EmployeeTerritory has been marked for deletion from
// the database.
func (et *EmployeeTerritory) Deleted() bool {
return et._deleted
}
// Insert inserts the EmployeeTerritory to the database.
func (et *EmployeeTerritory) Insert(ctx context.Context, db DB) error {
switch {
case et._exists: // already exists
return logerror(&ErrInsertFailed{ErrAlreadyExists})
case et._deleted: // deleted
return logerror(&ErrInsertFailed{ErrMarkedForDeletion})
}
// insert (manual)
const sqlstr = `INSERT INTO employee_territories (` +
`employee_id, territory_id` +
`) VALUES (` +
`$1, $2` +
`)`
// run
logf(sqlstr, et.EmployeeID, et.TerritoryID)
if _, err := db.ExecContext(ctx, sqlstr, et.EmployeeID, et.TerritoryID); err != nil {
return logerror(err)
}
// set exists
et._exists = true
return nil
}
// ------ NOTE: Update statements omitted due to lack of fields other than primary key ------
// Delete deletes the EmployeeTerritory from the database.
func (et *EmployeeTerritory) Delete(ctx context.Context, db DB) error {
switch {
case !et._exists: // doesn't exist
return nil
case et._deleted: // deleted
return nil
}
// delete with composite primary key
const sqlstr = `DELETE FROM employee_territories ` +
`WHERE employee_id = $1 AND territory_id = $2`
// run
logf(sqlstr, et.EmployeeID, et.TerritoryID)
if _, err := db.ExecContext(ctx, sqlstr, et.EmployeeID, et.TerritoryID); err != nil {
return logerror(err)
}
// set deleted
et._deleted = true
return nil
}
// EmployeeTerritoryByEmployeeIDTerritoryID retrieves a row from 'employee_territories' as a EmployeeTerritory.
//
// Generated from index 'sqlite_autoindex_employee_territories_1'.
func EmployeeTerritoryByEmployeeIDTerritoryID(ctx context.Context, db DB, employeeID int, territoryID string) (*EmployeeTerritory, error) {
// query
const sqlstr = `SELECT ` +
`employee_id, territory_id ` +
`FROM employee_territories ` +
`WHERE employee_id = $1 AND territory_id = $2`
// run
logf(sqlstr, employeeID, territoryID)
et := EmployeeTerritory{
_exists: true,
}
if err := db.QueryRowContext(ctx, sqlstr, employeeID, territoryID).Scan(&et.EmployeeID, &et.TerritoryID); err != nil {
return nil, logerror(err)
}
return &et, nil
}
// Employee returns the Employee associated with the EmployeeTerritory's (EmployeeID).
//
// Generated from foreign key 'employee_territories_employee_id_fkey'.
func (et *EmployeeTerritory) Employee(ctx context.Context, db DB) (*Employee, error) {
return EmployeeByEmployeeID(ctx, db, et.EmployeeID)
}
// Territory returns the Territory associated with the EmployeeTerritory's (TerritoryID).
//
// Generated from foreign key 'employee_territories_territory_id_fkey'.
func (et *EmployeeTerritory) Territory(ctx context.Context, db DB) (*Territory, error) {
return TerritoryByTerritoryID(ctx, db, et.TerritoryID)
}