/
make-mysql-repo.go
72 lines (58 loc) · 1.18 KB
/
make-mysql-repo.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
package main
import (
"fmt"
"github.com/kisielk/sqlstruct"
"log"
)
// MakeMysqlRepo mysql repository
// Implements IMakeRepository interface
type MakeMysqlRepo struct {
*MysqlDb
}
func (r MakeMysqlRepo) Get(id int, joins []string) (make Make, err error) {
entities := "make"
query := fmt.Sprintf("select * from %s where id=%d", entities, id)
rows, err := r.Db.Query(query)
if err != nil {
return
}
if !rows.Next() {
err = ErrNoResults
return
}
sqlstruct.Scan(&make, rows)
rows.Close()
return
}
func (r MakeMysqlRepo) GetAll(limit int, joins []string) (result []Make, err error) {
if limit == 0 {
limit = MAX_MYSQL_RESULTS
}
query := fmt.Sprintf("select * from make limit %d", limit)
rows, err := r.Db.Query(query)
if err != nil {
log.Println(err)
return
}
make := Make{}
for rows.Next() {
err = sqlstruct.Scan(&make, rows)
result = append(result, make)
}
rows.Close()
return
}
func (r MakeMysqlRepo) Query(query string) (makes []Make, err error) {
rows, err := r.Db.Query(query)
if err != nil {
log.Println(err)
return
}
make := Make{}
for rows.Next() {
err = sqlstruct.Scan(&make, rows)
makes = append(makes, make)
}
rows.Close()
return
}