Skip to content

Commit b2dcc68

Browse files
committed
update code chapter 3
1 parent 8873634 commit b2dcc68

File tree

6 files changed

+30
-23
lines changed

6 files changed

+30
-23
lines changed

Chapter03/myevents/src/eventsservice/main.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ package main
22

33
import (
44
"flag"
5-
"gocloudprogramming/chapter3/myevents/src/eventsservice/rest"
6-
"gocloudprogramming/chapter3/myevents/src/lib/configuration"
7-
"gocloudprogramming/chapter3/myevents/src/lib/persistence/dblayer"
85
"log"
6+
7+
"github.com/PacktPublishing/Cloud-Native-programming-with-Golang/chapter03/myevents/src/eventsservice/rest"
8+
"github.com/PacktPublishing/Cloud-Native-programming-with-Golang/chapter03/myevents/src/lib/configuration"
9+
"github.com/PacktPublishing/Cloud-Native-programming-with-Golang/chapter03/myevents/src/lib/persistence/dblayer"
910
)
1011

1112
func main() {

Chapter03/myevents/src/eventsservice/rest/handlers.go

+18-14
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,19 @@ import (
44
"encoding/hex"
55
"encoding/json"
66
"fmt"
7-
"gocloudprogramming/chapter3/myevents/src/lib/persistence"
87
"net/http"
98
"strings"
109

10+
"github.com/PacktPublishing/Cloud-Native-programming-with-Golang/chapter03/myevents/src/lib/persistence"
11+
1112
"github.com/gorilla/mux"
1213
)
1314

1415
type eventServiceHandler struct {
1516
dbhandler persistence.DatabaseHandler
1617
}
1718

18-
func New(databasehandler persistence.DatabaseHandler) *eventServiceHandler {
19+
func NewEventHandler(databasehandler persistence.DatabaseHandler) *eventServiceHandler {
1920
return &eventServiceHandler{
2021
dbhandler: databasehandler,
2122
}
@@ -25,15 +26,19 @@ func (eh *eventServiceHandler) FindEventHandler(w http.ResponseWriter, r *http.R
2526
vars := mux.Vars(r)
2627
criteria, ok := vars["SearchCriteria"]
2728
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}"`)
3033
return
3134
}
3235

3336
searchkey, ok := vars["search"]
3437
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}"`)
3742
return
3843
}
3944

@@ -44,13 +49,12 @@ func (eh *eventServiceHandler) FindEventHandler(w http.ResponseWriter, r *http.R
4449
event, err = eh.dbhandler.FindEventByName(searchkey)
4550
case "id":
4651
id, err := hex.DecodeString(searchkey)
47-
if nil == err {
52+
if err == nil {
4853
event, err = eh.dbhandler.FindEvent(id)
4954
}
5055
}
5156
if err != nil {
52-
w.WriteHeader(404)
53-
fmt.Fprintf(w, "Error occured %s", err)
57+
fmt.Fprintf(w, `{"error": "%s"}`, err)
5458
return
5559
}
5660
w.Header().Set("Content-Type", "application/json;charset=utf8")
@@ -61,14 +65,14 @@ func (eh *eventServiceHandler) AllEventHandler(w http.ResponseWriter, r *http.Re
6165
events, err := eh.dbhandler.FindAllAvailableEvents()
6266
if err != nil {
6367
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)
6569
return
6670
}
6771
w.Header().Set("Content-Type", "application/json;charset=utf8")
6872
err = json.NewEncoder(w).Encode(&events)
6973
if err != nil {
7074
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)
7276
}
7377
}
7478

@@ -77,14 +81,14 @@ func (eh *eventServiceHandler) NewEventHandler(w http.ResponseWriter, r *http.Re
7781
err := json.NewDecoder(r.Body).Decode(&event)
7882
if nil != err {
7983
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)
8185
return
8286
}
8387
id, err := eh.dbhandler.AddEvent(event)
8488
if nil != err {
8589
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)
8791
return
8892
}
89-
fmt.Fprint(w, id)
93+
fmt.Fprint(w, `{"id":%d}`, id)
9094
}

Chapter03/myevents/src/eventsservice/rest/rest.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package rest
22

33
import (
4-
"gocloudprogramming/chapter3/myevents/src/lib/persistence"
54
"net/http"
65

6+
"github.com/PacktPublishing/Cloud-Native-programming-with-Golang/chapter03/myevents/src/lib/persistence"
7+
78
"github.com/gorilla/mux"
89
)
910

1011
func ServeAPI(endpoint, tlsendpoint string, databasehandler persistence.DatabaseHandler) (chan error, chan error) {
11-
handler := New(databasehandler)
12+
handler := NewEventHandler(databasehandler)
1213
r := mux.NewRouter()
1314
eventsrouter := r.PathPrefix("/events").Subrouter()
1415
eventsrouter.Methods("GET").Path("/{SearchCriteria}/{search}").HandlerFunc(handler.FindEventHandler)

Chapter03/myevents/src/lib/configuration/configuration.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ package configuration
33
import (
44
"encoding/json"
55
"fmt"
6-
"gocloudprogramming/chapter3/myevents/src/lib/persistence/dblayer"
76
"os"
7+
8+
"github.com/PacktPublishing/Cloud-Native-programming-with-Golang/chapter03/myevents/src/lib/persistence/dblayer"
89
)
910

1011
var (

Chapter03/myevents/src/lib/persistence/dblayer/dblayer.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package dblayer
22

33
import (
4-
"gocloudprogramming/chapter3/myevents/src/lib/persistence"
5-
"gocloudprogramming/chapter3/myevents/src/lib/persistence/mongolayer"
4+
"github.com/PacktPublishing/Cloud-Native-programming-with-Golang/chapter03/myevents/src/lib/persistence"
5+
"github.com/PacktPublishing/Cloud-Native-programming-with-Golang/chapter03/myevents/src/lib/persistence/mongolayer"
66
)
77

88
type DBTYPE string

Chapter03/myevents/src/lib/persistence/mongolayer/mongolayer.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package mongolayer
22

33
import (
4-
"gocloudprogramming/chapter3/myevents/src/lib/persistence"
4+
"github.com/PacktPublishing/Cloud-Native-programming-with-Golang/chapter03/myevents/src/lib/persistence"
55

66
mgo "gopkg.in/mgo.v2"
77
"gopkg.in/mgo.v2/bson"

0 commit comments

Comments
 (0)