/
break_tw.go
68 lines (52 loc) · 1.88 KB
/
break_tw.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
/*GRP-GNU-AGPL******************************************************************
File: break_tw.go
Copyright (C) 2021 Team Georepublic <info@georepublic.de>
Developer(s):
Copyright (C) 2021 Ashish Kumar <ashishkr23438@gmail.com>
-----
This file is part of pg_scheduleserv.
pg_scheduleserv is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
pg_scheduleserv is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with pg_scheduleserv. If not, see <https://www.gnu.org/licenses/>.
******************************************************************GRP-GNU-AGPL*/
package database
import (
"context"
"fmt"
)
func (q *Queries) DBCreateBreakTimeWindows(ctx context.Context, id int64, arg []TimeWindowParams) error {
if len(arg) == 0 {
return nil
}
// create an sql query to insert multiple rows
sql := "INSERT INTO breaks_time_windows (id, tw_open, tw_close) VALUES "
for i := range arg {
if i > 0 {
sql += ","
}
sql += fmt.Sprintf("($%d, $%d, $%d)", i*3+1, i*3+2, i*3+3)
}
// create a slice of arguments for the query
args := make([]interface{}, len(arg)*3)
for i, v := range arg {
args[i*3] = id
args[i*3+1] = v.TwOpen
args[i*3+2] = v.TwClose
}
// execute the query
_, err := q.db.Exec(ctx, sql, args...)
return err
}
func (q *Queries) DBDeleteBreakTimeWindows(ctx context.Context, id int64) error {
tableName := "breaks_time_windows"
sql := "DELETE FROM " + tableName + " WHERE id = $1"
_, err := q.db.Exec(ctx, sql, id)
return err
}