-
Notifications
You must be signed in to change notification settings - Fork 0
/
siren.go
86 lines (79 loc) · 2.19 KB
/
siren.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
package main
import (
"encoding/json"
"log"
"net/http"
"github.com/go-chi/chi"
"github.com/go-chi/render"
"github.com/serbe/edc"
)
func listSiren(w http.ResponseWriter, r *http.Request) {
type context struct {
Title string `json:"title"`
Sirens []edc.SirenList `json:"sirens"`
}
sirens, err := db.GetSirenList()
if err != nil {
errmsg("listSirens GetSirenList", err)
return
}
ctx := context{Title: "List", Sirens: sirens}
render.DefaultResponder(w, r, ctx)
}
func getSiren(w http.ResponseWriter, r *http.Request) {
type context struct {
Title string `json:"title"`
Siren edc.Siren `json:"siren"`
Contacts []edc.SelectItem `json:"contacts"`
Companies []edc.SelectItem `json:"companies"`
SirenTypes []edc.SelectItem `json:"siren_types"`
}
id := toInt(chi.URLParam(r, "id"))
siren, err := db.GetSiren(id)
if err != nil {
errmsg("getSiren GetSiren", err)
return
}
contacts, err := db.GetContactSelectAll()
if err != nil {
errmsg("getSiren GetContactSelectAll", err)
return
}
companies, err := db.GetCompanySelectAll()
if err != nil {
errmsg("getSiren GetCompanySelectAll", err)
return
}
sirenTypes, err := db.GetSirenTypeSelectAll()
if err != nil {
errmsg("getSiren GetSirenTypeSelectAll", err)
return
}
ctx := context{
Title: "Create siren type",
Siren: siren,
Contacts: contacts,
Companies: companies,
SirenTypes: sirenTypes,
}
render.DefaultResponder(w, r, ctx)
}
func createSiren(_ http.ResponseWriter, r *http.Request) {
var siren edc.Siren
errchkmsg("createSiren Decode", json.NewDecoder(r.Body).Decode(&siren))
log.Println(siren)
_, err := db.CreateSiren(siren)
errchkmsg("createSiren CreateSiren", err)
errchkmsg("createSiren CloseBody", r.Body.Close())
}
func updateSiren(_ http.ResponseWriter, r *http.Request) {
var siren edc.Siren
errchkmsg("updateSiren Decode", json.NewDecoder(r.Body).Decode(&siren))
log.Println(siren)
errchkmsg("updateSiren UpdateSiren", db.UpdateSiren(siren))
errchkmsg("updateSiren CloseBody", r.Body.Close())
}
func deleteSiren(_ http.ResponseWriter, r *http.Request) {
id := toInt(chi.URLParam(r, "id"))
errchkmsg("deleteSiren DeleteSiren", db.DeleteSiren(id))
}