@@ -6,35 +6,22 @@ import (
66 "net/http"
77
88 "github.com/google/uuid"
9- "gorm.io/datatypes"
10- "gorm.io/gorm"
119)
1210
1311type recController struct {
14- db * gorm. DB
12+ store recStore
1513}
1614
1715// GET /recs
1816func (recController recController ) getRecs (w http.ResponseWriter , r * http.Request ) {
19- var sqlResult []rec
20- db := recController .db
21- tag := r .URL .Query ().Get ("tag" )
22- if tag != "" {
23- db = db .Where (datatypes .JSONQuery ("tags" ).HasKey (tag ))
24- }
25- err := db .Order ("dis" ).Find (& sqlResult ).Error
17+ recs , err := recController .store .readRecs (r .URL .Query ().Get ("tag" ))
2618 if err != nil {
2719 log .Printf ("SQL Error: %s" , err )
2820 w .WriteHeader (http .StatusInternalServerError )
2921 return
3022 }
3123
32- httpResult := []apiRec {}
33- for _ , sqlRow := range sqlResult {
34- httpResult = append (httpResult , apiRec (sqlRow ))
35- }
36-
37- httpJson , err := json .Marshal (httpResult )
24+ httpJson , err := json .Marshal (recs )
3825 if err != nil {
3926 log .Printf ("Cannot encode response JSON: %s" , err )
4027 w .WriteHeader (http .StatusBadRequest )
@@ -56,11 +43,9 @@ func (recController recController) postRecs(w http.ResponseWriter, r *http.Reque
5643 return
5744 }
5845
59- rec := rec (apiRec )
60-
61- err = recController .db .Create (& rec ).Error
46+ err = recController .store .createRec (apiRec )
6247 if err != nil {
63- log .Printf ("SQL Error: %s" , err )
48+ log .Printf ("Storage Error: %s" , err )
6449 w .WriteHeader (http .StatusInternalServerError )
6550 return
6651 }
@@ -78,19 +63,13 @@ func (recController recController) postRecs(w http.ResponseWriter, r *http.Reque
7863
7964// GET /recs/tag/:tag
8065func (recController recController ) getRecsByTag (w http.ResponseWriter , r * http.Request ) {
81- var recs []rec
82- err := recController .db .Where (datatypes .JSONQuery ("tags" ).HasKey ("siteMeter" )).Order ("dis" ).Find (& recs ).Error
66+ apiRecs , err := recController .store .readRecs ("siteMeter" )
8367 if err != nil {
84- log .Printf ("SQL Error: %s" , err )
68+ log .Printf ("Storage Error: %s" , err )
8569 w .WriteHeader (http .StatusInternalServerError )
8670 return
8771 }
8872
89- apiRecs := []apiRec {}
90- for _ , rec := range recs {
91- apiRecs = append (apiRecs , apiRec (rec ))
92- }
93-
9473 httpJson , err := json .Marshal (apiRecs )
9574 if err != nil {
9675 log .Printf ("Cannot encode response JSON" )
@@ -111,16 +90,13 @@ func (recController recController) getRec(w http.ResponseWriter, r *http.Request
11190 w .WriteHeader (http .StatusNotFound )
11291 return
11392 }
114- var rec rec
115- err = recController .db .First (& rec , "id = ?" , id ).Error
93+ apiRec , err := recController .store .readRec (id )
11694 if err != nil {
117- log .Printf ("SQL Error: %s" , err )
95+ log .Printf ("Storage Error: %s" , err )
11896 w .WriteHeader (http .StatusInternalServerError )
11997 return
12098 }
12199
122- apiRec := apiRec (rec )
123-
124100 httpJson , err := json .Marshal (apiRec )
125101 if err != nil {
126102 log .Printf ("Cannot encode response JSON" )
@@ -150,25 +126,9 @@ func (recController recController) putRec(w http.ResponseWriter, r *http.Request
150126 w .WriteHeader (http .StatusBadRequest )
151127 return
152128 }
153-
154- var rec rec
155- err = recController .db .First (& rec , id ).Error
156- if err != nil {
157- log .Printf ("No rec with ID: %s" , id )
158- w .WriteHeader (http .StatusBadRequest )
159- return
160- }
161-
162- if apiRec .Dis != nil {
163- rec .Dis = apiRec .Dis
164- }
165- if apiRec .Unit != nil {
166- rec .Unit = apiRec .Unit
167- }
168-
169- err = recController .db .Save (& rec ).Error
129+ err = recController .store .updateRec (id , apiRec )
170130 if err != nil {
171- log .Printf ("Unable to update : %s" , err )
131+ log .Printf ("Storage Error : %s" , id )
172132 w .WriteHeader (http .StatusBadRequest )
173133 return
174134 }
@@ -186,7 +146,7 @@ func (recController recController) deleteRec(w http.ResponseWriter, r *http.Requ
186146 return
187147 }
188148
189- err = recController .db . Delete ( & rec {}, id ). Error
149+ err = recController .store . deleteRec ( id )
190150 if err != nil {
191151 log .Printf ("Unable to delete: %s" , err )
192152 w .WriteHeader (http .StatusBadRequest )
0 commit comments