/
common.go
64 lines (53 loc) · 1.3 KB
/
common.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
package database
import (
"database/sql"
token "github.com/Festivals-App/festivals-identity-server/jwt"
)
type Entity string
const (
Festival Entity = "festival"
Artist Entity = "artist"
Location Entity = "location"
Event Entity = "event"
Link Entity = "link"
Image Entity = "image"
Place Entity = "place"
Tag Entity = "tag"
)
func executeRowQuery(db *sql.DB, query string, args []interface{}) (*sql.Rows, error) {
rows, err := db.Query(query, args...)
if err != nil {
if err == sql.ErrNoRows {
return nil, nil
}
return nil, err
}
return rows, nil
}
func executeQuery(db *sql.DB, query string, args []interface{}) (sql.Result, error) {
stmt, err := db.Prepare(query)
if err != nil {
return nil, err
}
result, err := stmt.Exec(args...)
if err != nil {
return nil, err
}
err = stmt.Close()
if err != nil {
return nil, err
}
return result, nil
}
func userScan(rs *sql.Rows) (token.User, error) {
var u token.User
return u, rs.Scan(&u.ID, &u.Email, &u.PasswordHash, &u.CreateDate, &u.UpdateDate, &u.Role)
}
func apiKeyScan(rs *sql.Rows) (token.APIKey, error) {
var u token.APIKey
return u, rs.Scan(&u.ID, &u.Key, &u.Comment)
}
func serviceKeyScan(rs *sql.Rows) (token.ServiceKey, error) {
var u token.ServiceKey
return u, rs.Scan(&u.ID, &u.Key, &u.Comment)
}