Skip to content

Commit b56bc19

Browse files
authored
Add docs link to 400 responses and status (#21)
1 parent d2b835f commit b56bc19

9 files changed

+35
-7
lines changed

handlers/Catchall.go

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package handlers
2+
3+
import (
4+
"net/http"
5+
)
6+
7+
func Catchall(w http.ResponseWriter, r *http.Request) {
8+
giveBadRequestResponse(w)
9+
}

handlers/GetAdventurer.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func GetAdventurer(w http.ResponseWriter, r *http.Request) {
1717
region, regionOk := validators.ValidateRegionQueryParam(r.URL.Query()["region"])
1818

1919
if !profileTargetOk || !regionOk {
20-
w.WriteHeader(http.StatusBadRequest)
20+
giveBadRequestResponse(w)
2121
return
2222
}
2323

handlers/GetAdventurerSearch.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func GetAdventurerSearch(w http.ResponseWriter, r *http.Request) {
2121
searchType := validators.ValidateSearchTypeQueryParam(r.URL.Query()["searchType"])
2222

2323
if !queryOk || !regionOk {
24-
w.WriteHeader(http.StatusBadRequest)
24+
giveBadRequestResponse(w)
2525
return
2626
}
2727

handlers/GetGuild.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func GetGuild(w http.ResponseWriter, r *http.Request) {
1818
region, regionOk := validators.ValidateRegionQueryParam(r.URL.Query()["region"])
1919

2020
if !nameOk || !regionOk {
21-
w.WriteHeader(http.StatusBadRequest)
21+
giveBadRequestResponse(w)
2222
return
2323
}
2424

handlers/GetGuildSearch.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func GetGuildSearch(w http.ResponseWriter, r *http.Request) {
2020
region, regionOk := validators.ValidateRegionQueryParam(r.URL.Query()["region"])
2121

2222
if !nameOk || !regionOk {
23-
w.WriteHeader(http.StatusBadRequest)
23+
giveBadRequestResponse(w)
2424
return
2525
}
2626

handlers/GetStatus.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
)
1111

1212
var initTime = time.Now()
13+
var version = "1.8.4"
1314

1415
func GetStatus(w http.ResponseWriter, r *http.Request) {
1516
json.NewEncoder(w).Encode(map[string]interface{}{
@@ -26,8 +27,9 @@ func GetStatus(w http.ResponseWriter, r *http.Request) {
2627
"maintenanceStatus": config.GetMaintenanceStatusTTL().Round(time.Minute).String(),
2728
},
2829
},
30+
"docs": docsLink,
2931
"proxies": len(config.GetProxyList()),
3032
"uptime": time.Since(initTime).Round(time.Second).String(),
31-
"version": "1.8.3",
33+
"version": version,
3234
})
3335
}

handlers/giveBadRequestResponse.go

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package handlers
2+
3+
import (
4+
"encoding/json"
5+
"net/http"
6+
)
7+
8+
const docsLink = "https://man90es.github.io/BDO-REST-API"
9+
10+
func giveBadRequestResponse(w http.ResponseWriter) {
11+
w.WriteHeader(http.StatusBadRequest)
12+
13+
json.NewEncoder(w).Encode(map[string]string{
14+
"message": "Route or parameter is invalid. See documentation " + docsLink,
15+
})
16+
}

httpServer/BuildServer.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func BuildServer() *http.Server {
1818
"/v1/adventurer/search": handlers.GetAdventurerSearch,
1919
"/v1/guild": handlers.GetGuild,
2020
"/v1/guild/search": handlers.GetGuildSearch,
21-
})
21+
}, handlers.Catchall)
2222

2323
if err != nil {
2424
log.Fatal(err)

httpServer/registerHandlers.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"github.com/gorilla/mux"
99
)
1010

11-
func registerHandlers(handlerMap map[string]func(http.ResponseWriter, *http.Request)) (*mux.Router, error) {
11+
func registerHandlers(handlerMap map[string]func(http.ResponseWriter, *http.Request), catchall func(http.ResponseWriter, *http.Request)) (*mux.Router, error) {
1212
router := mux.NewRouter()
1313

1414
for route, handler := range handlerMap {
@@ -18,6 +18,7 @@ func registerHandlers(handlerMap map[string]func(http.ResponseWriter, *http.Requ
1818
),
1919
).Methods("GET")
2020
}
21+
router.PathPrefix("/").HandlerFunc(catchall)
2122

2223
return router, nil
2324
}

0 commit comments

Comments
 (0)