@@ -4,18 +4,19 @@ import (
4
4
"encoding/hex"
5
5
"encoding/json"
6
6
"fmt"
7
- "gocloudprogramming/chapter3/myevents/src/lib/persistence"
8
7
"net/http"
9
8
"strings"
10
9
10
+ "github.com/PacktPublishing/Cloud-Native-programming-with-Golang/chapter03/myevents/src/lib/persistence"
11
+
11
12
"github.com/gorilla/mux"
12
13
)
13
14
14
15
type eventServiceHandler struct {
15
16
dbhandler persistence.DatabaseHandler
16
17
}
17
18
18
- func New (databasehandler persistence.DatabaseHandler ) * eventServiceHandler {
19
+ func NewEventHandler (databasehandler persistence.DatabaseHandler ) * eventServiceHandler {
19
20
return & eventServiceHandler {
20
21
dbhandler : databasehandler ,
21
22
}
@@ -25,15 +26,19 @@ func (eh *eventServiceHandler) FindEventHandler(w http.ResponseWriter, r *http.R
25
26
vars := mux .Vars (r )
26
27
criteria , ok := vars ["SearchCriteria" ]
27
28
if ! ok {
28
- fmt .Fprint (w , `No search criteria found, you can either search by id via /id/4
29
- to search by name via /name/coldplayconcert` )
29
+ w .WriteHeader (400 )
30
+ fmt .Fprint (w , `{"error": "No search criteria found, you can either
31
+ search by id via /id/4
32
+ to search by name via /name/coldplayconcert}"` )
30
33
return
31
34
}
32
35
33
36
searchkey , ok := vars ["search" ]
34
37
if ! ok {
35
- fmt .Fprint (w , `No search keys found, you can either search by id via /id/4
36
- to search by name via /name/coldplayconcert` )
38
+ w .WriteHeader (400 )
39
+ fmt .Fprint (w , `{"error": "No search keys found, you can either search
40
+ by id via /id/4
41
+ to search by name via /name/coldplayconcert}"` )
37
42
return
38
43
}
39
44
@@ -44,13 +49,12 @@ func (eh *eventServiceHandler) FindEventHandler(w http.ResponseWriter, r *http.R
44
49
event , err = eh .dbhandler .FindEventByName (searchkey )
45
50
case "id" :
46
51
id , err := hex .DecodeString (searchkey )
47
- if nil == err {
52
+ if err == nil {
48
53
event , err = eh .dbhandler .FindEvent (id )
49
54
}
50
55
}
51
56
if err != nil {
52
- w .WriteHeader (404 )
53
- fmt .Fprintf (w , "Error occured %s" , err )
57
+ fmt .Fprintf (w , `{"error": "%s"}` , err )
54
58
return
55
59
}
56
60
w .Header ().Set ("Content-Type" , "application/json;charset=utf8" )
@@ -61,14 +65,14 @@ func (eh *eventServiceHandler) AllEventHandler(w http.ResponseWriter, r *http.Re
61
65
events , err := eh .dbhandler .FindAllAvailableEvents ()
62
66
if err != nil {
63
67
w .WriteHeader (500 )
64
- fmt .Fprintf (w , " Error occured while trying to find all available events %s" , err )
68
+ fmt .Fprintf (w , `{"error": " Error occured while trying to find all available events %s"}` , err )
65
69
return
66
70
}
67
71
w .Header ().Set ("Content-Type" , "application/json;charset=utf8" )
68
72
err = json .NewEncoder (w ).Encode (& events )
69
73
if err != nil {
70
74
w .WriteHeader (500 )
71
- fmt .Fprintf (w , " Error occured while trying encode events to JSON %s" , err )
75
+ fmt .Fprintf (w , `{"error": " Error occured while trying encode events to JSON %s"}` , err )
72
76
}
73
77
}
74
78
@@ -77,14 +81,14 @@ func (eh *eventServiceHandler) NewEventHandler(w http.ResponseWriter, r *http.Re
77
81
err := json .NewDecoder (r .Body ).Decode (& event )
78
82
if nil != err {
79
83
w .WriteHeader (500 )
80
- fmt .Fprintf (w , "error occured while decoding event data %s" , err )
84
+ fmt .Fprintf (w , `{ "error": "error occured while decoding event data %s"}` , err )
81
85
return
82
86
}
83
87
id , err := eh .dbhandler .AddEvent (event )
84
88
if nil != err {
85
89
w .WriteHeader (500 )
86
- fmt .Fprintf (w , "error occured while persisting event %s" , err )
90
+ fmt .Fprintf (w , `{ "error": "error occured while persisting event %d %s"}` , id , err )
87
91
return
88
92
}
89
- fmt .Fprint (w , id )
93
+ fmt .Fprint (w , `{"id":%d}` , id )
90
94
}
0 commit comments