-
Notifications
You must be signed in to change notification settings - Fork 0
/
practice.go
90 lines (82 loc) · 2.46 KB
/
practice.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
87
88
89
90
package main
import (
"encoding/json"
"net/http"
"github.com/go-chi/chi"
"github.com/go-chi/render"
"github.com/serbe/edc"
)
func listPractices(w http.ResponseWriter, r *http.Request) {
type context struct {
Title string `json:"title"`
Practices []edc.PracticeList `json:"practices"`
}
practices, err := db.GetPracticeListAll()
if err != nil {
errmsg("listPractices GetPracticeListAll", err)
return
}
ctx := context{Title: "List", Practices: practices}
render.DefaultResponder(w, r, ctx)
}
func listPracticesNear(w http.ResponseWriter, r *http.Request) {
type context struct {
Title string `json:"title"`
Practices []edc.PracticeShort `json:"practices"`
}
practices, err := db.GetPracticeNear()
if err != nil {
errmsg("listPracticesNear GetPracticeNear", err)
return
}
ctx := context{Title: "List", Practices: practices}
render.DefaultResponder(w, r, ctx)
}
func getPractice(w http.ResponseWriter, r *http.Request) {
type context struct {
Title string `json:"title"`
Practice edc.Practice `json:"practice"`
Companies []edc.SelectItem `json:"companies"`
Kinds []edc.SelectItem `json:"kinds"`
}
id := toInt(chi.URLParam(r, "id"))
practice, err := db.GetPractice(id)
if err != nil {
errmsg("getPractice GetPractice", err)
return
}
companies, err := db.GetCompanySelectAll()
if err != nil {
errmsg("getPractice GetCompanySelectAll", err)
return
}
kinds, err := db.GetKindSelectAll()
if err != nil {
errmsg("getPractice GetKindSelectAll", err)
return
}
ctx := context{
Title: "Create practice",
Practice: practice,
Companies: companies,
Kinds: kinds,
}
render.DefaultResponder(w, r, ctx)
}
func createPractice(_ http.ResponseWriter, r *http.Request) {
var practice edc.Practice
errchkmsg("createPractice Decode", json.NewDecoder(r.Body).Decode(&practice))
_, err := db.CreatePractice(practice)
errchkmsg("createPractice CreatePractice", err)
errchkmsg("createPractice CloseBody", r.Body.Close())
}
func updatePractice(_ http.ResponseWriter, r *http.Request) {
var practice edc.Practice
errchkmsg("updatePractice Decode", json.NewDecoder(r.Body).Decode(&practice))
errchkmsg("updatePractice UpdatePractice", db.UpdatePractice(practice))
errchkmsg("updatePractice CloseBody", r.Body.Close())
}
func deletePractice(_ http.ResponseWriter, r *http.Request) {
id := toInt(chi.URLParam(r, "id"))
errchkmsg("deletePractice DeletePractice", db.DeletePractice(id))
}