Commit fc2377c
Changed files (3)
client.go
@@ -49,7 +49,7 @@ func getRecordFromServer(client *http.Client, config CONFIG, numQuestions int) (
default:
serverURL = "http://" + config.SERVER + ":" + strconv.Itoa(config.PORT)
}
- resp, err := client.Get(serverURL + "/record?questions=" + strconv.Itoa(numQuestions))
+ resp, err := client.Get(serverURL + API_ROOT + "/test" + "?questions=" + strconv.Itoa(numQuestions))
if err != nil {
return nil, err
}
serverHandlers.go
@@ -8,14 +8,8 @@ import (
"strconv"
)
-type ServerHandler struct {
- Request string
- HandleFunction func(writer http.ResponseWriter, request *http.Request)
-}
-
-// HandleConnections processes client connections
-func handleRecordRequests(writer http.ResponseWriter, request *http.Request) {
- log.Printf("Client Connected: %+v\tvia %+v", request.RemoteAddr, request.UserAgent())
+// handleRequestForTest provides a JSON formatted test for the client
+func handleRequestForTest(writer http.ResponseWriter, request *http.Request) {
var giveRecords []Record
var err error
questions := request.FormValue("questions")
@@ -31,7 +25,32 @@ func handleRecordRequests(writer http.ResponseWriter, request *http.Request) {
log.Printf("Gave %d questions to %s", numQuestions, request.RemoteAddr)
}
-var handlers = []ServerHandler{
- ServerHandler{
- Request: "/record",
- HandleFunction: handleRecordRequests}}
+// handleTestRequests creates an array of records for the client
+// the requestion expects 1 parameter (numQuestions)
+func handleTestQueries(writer http.ResponseWriter, request *http.Request) {
+ if request.URL.Path != handlers[API_ROOT+"/test"].Request {
+ return
+ }
+ switch request.Method {
+ case "POST":
+ log.Printf("Client posting test: %+v\tvia %+v", request.RemoteAddr, request.UserAgent())
+ case "GET":
+ log.Printf("Client requested test: %+v\tvia %+v", request.RemoteAddr, request.UserAgent())
+ handleRequestForTest(writer, request)
+ }
+}
+
+type ServerHandler struct {
+ Request string
+ HandleFunction func(writer http.ResponseWriter, request *http.Request)
+}
+
+var handlers map[string]ServerHandler
+
+func init() {
+ handlers = map[string]ServerHandler{
+ API_ROOT + "/test": ServerHandler{
+ Request: API_ROOT + "/test",
+ HandleFunction: handleTestQueries}}
+
+}
structures.go
@@ -1,5 +1,8 @@
package main
+// API_ROOT defines the root path for the web api interface
+const API_ROOT = "/api"
+
// EXIT_CODES define exit error codes
type EXIT_CODES struct {
BAD_CONFIG,