-
Notifications
You must be signed in to change notification settings - Fork 0
/
fifos.go
97 lines (88 loc) · 2.7 KB
/
fifos.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
// const FIFOS = `
// CREATE TABLE IF NOT EXISTS %s (
//
// fifo_uuid uuid NOT NULL DEFAULT gen_random_uuid(),
// fifo_name varchar NOT NULL,
// fifo_importance varchar NULL DEFAULT 0,
// fifo_announce varchar NULL DEFAULT '',
// fifo_holdmusic varchar NULL DEFAULT '',
// CONSTRAINT fifos_pkey PRIMARY KEY (fifo_uuid),
// CONSTRAINT fifos_un UNIQUE (fifo_name)
//
// );
// COMMENT ON TABLE %s IS 'mod_fifo fifos';
// `
package db
import (
"fmt"
"strings"
)
type Fifo struct {
Fuuid string `db:"fifo_uuid" json:"uuid"`
Fname string `db:"fifo_name" json:"name"`
Fimportance string `db:"fifo_importance" json:"importance"`
Fannounce string `db:"fifo_announce" json:"announce"`
Fholdmusic string `db:"fifo_holdmusic" json:"holdmusic"`
}
// SelectFifos
func SelectFifos() ([]Fifo, error) {
fifos := []Fifo{}
q := fmt.Sprintf("select * from %sfifos", GetTablesGatewayPrifex())
err := GetGatewaydb().Select(&fifos, q)
return fifos, err
}
// SelectFifosWithCondition
func SelectFifosWithCondition(condition string) ([]Fifo, error) {
var fifos []Fifo
q := fmt.Sprintf("select * from %sacce164s where %s", GetTablesGatewayPrifex(), condition)
err := GetGatewaydb().Select(&fifos, q)
return fifos, err
}
// InsertFifos
func InsertFifos(in []Fifo) ([]Fifo, error) {
var fifo Fifo
var fifos []Fifo
var q = fmt.Sprintf("insert into %sfifos(fifo_name,fifo_importance,fifo_announce,fifo_holdmusic) values", GetTablesGatewayPrifex())
if len := len(in); len > 0 {
for index := 0; index < len; index++ {
fifo = in[index]
value := fmt.Sprintf("('%s','%s','%s','%s'),", fifo.Fname, fifo.Fimportance, fifo.Fannounce, fifo.Fholdmusic)
q += value
}
q = strings.TrimSuffix(q, ",")
q += (" returning *;")
}
err := GetGatewaydb().Select(&fifos, q)
return fifos, err
}
// UpdateFifosFifo
func UpdateFifosFifo(uuid string, in Fifo) (Fifo, error) {
var fifo = Fifo{}
var q = fmt.Sprintf("update %sfifos set ", GetTablesGatewayPrifex())
if len(in.Fname) > 0 {
q += fmt.Sprintf("fifo_name='%s',", in.Fname)
}
if len(in.Fimportance) > 0 {
q += fmt.Sprintf("fifo_importance='%s',", in.Fimportance)
}
if len(in.Fannounce) > 0 {
q += fmt.Sprintf("fifo_announce='%s',", in.Fannounce)
}
if len(in.Fholdmusic) > 0 {
q += fmt.Sprintf("fifo_holdmusic='%s',", in.Fholdmusic)
}
q = strings.TrimSuffix(q, ",")
q += fmt.Sprintf(" where fifo_uuid='%s'", uuid)
q += (" returning *;")
err := GetGatewaydb().Get(&fifo, q)
return fifo, err
}
// DeleteFifosFifo
func DeleteFifosFifo(uuid string) (Fifo, error) {
var fifo = Fifo{}
var q = fmt.Sprintf("delete from %sfifos ", GetTablesGatewayPrifex())
q += fmt.Sprintf(" where fifo_uuid='%s'", uuid)
q += (" returning *;")
err := GetGatewaydb().Get(&fifo, q)
return fifo, err
}