/
functions.go
46 lines (39 loc) · 1.1 KB
/
functions.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
package sqlite
import (
"log"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
_ "modernc.org/sqlite"
)
type Executable = func(data *Model, repo *Repository) Response
var BasicOpenFunc = func(data *Model, repo *Repository) Response {
log.Println("Received open: ", data)
db, err := gorm.Open(sqlite.Open(data.String()), &gorm.Config{})
if err != nil {
panic(err)
}
repo.db = db
return NewResponse(repo.db, err)
}
var ReadFirstFunc = func(data *Model, repo *Repository) Response {
value := data.Value
tx := repo.db.First(value)
return NewResponse(value, tx.Error)
}
var BasicInsertFunc = func(data *Model, repo *Repository) Response {
value := data.Value
//TODO Remove this after initial development
repo.db.AutoMigrate(&value)
tx := repo.db.Create(value)
return NewResponse(value, tx.Error)
}
var BasicUpdateFunc = func(data *Model, repo *Repository) Response {
value := data.Value
tx := repo.db.Updates(value)
return NewResponse(value, tx.Error)
}
var BasicDeleteFunc = func(data *Model, repo *Repository) Response {
value := data.Value
tx := repo.db.Delete(value)
return NewResponse(value, tx.Error)
}