diff options
Diffstat (limited to 'server/core')
-rw-r--r-- | server/core/json_response.go | 5 | ||||
-rw-r--r-- | server/core/request.go | 19 | ||||
-rw-r--r-- | server/core/response.go | 2 |
3 files changed, 25 insertions, 1 deletions
diff --git a/server/core/json_response.go b/server/core/json_response.go index 3e0b0e8f..ed29d6ab 100644 --- a/server/core/json_response.go +++ b/server/core/json_response.go @@ -103,3 +103,8 @@ func (j *JSONResponse) toJSON(v interface{}) []byte { return b } + +// NewJSONResponse returns a new JSONResponse. +func NewJSONResponse(w http.ResponseWriter, r *http.Request) *JSONResponse { + return &JSONResponse{request: r, writer: w} +} diff --git a/server/core/request.go b/server/core/request.go index 4a2acc3b..540b2ac1 100644 --- a/server/core/request.go +++ b/server/core/request.go @@ -51,6 +51,18 @@ func (r *Request) Cookie(name string) string { return cookie.Value } +// FormValue returns a form value as integer. +func (r *Request) FormValue(param string) string { + return r.request.FormValue(param) +} + +// FormIntegerValue returns a form value as integer. +func (r *Request) FormIntegerValue(param string) int64 { + value := r.request.FormValue(param) + integer, _ := strconv.Atoi(value) + return int64(integer) +} + // IntegerParam returns an URL parameter as integer. func (r *Request) IntegerParam(param string) (int64, error) { vars := mux.Vars(r.request) @@ -105,6 +117,13 @@ func (r *Request) QueryIntegerParam(param string, defaultValue int) int { return val } +// HasQueryParam checks if the query string contains the given parameter. +func (r *Request) HasQueryParam(param string) bool { + values := r.request.URL.Query() + _, ok := values[param] + return ok +} + // NewRequest returns a new Request struct. func NewRequest(w http.ResponseWriter, r *http.Request) *Request { return &Request{writer: w, request: r} diff --git a/server/core/response.go b/server/core/response.go index 4aef8af0..fc15e420 100644 --- a/server/core/response.go +++ b/server/core/response.go @@ -26,7 +26,7 @@ func (r *Response) SetCookie(cookie *http.Cookie) { // JSON returns a JSONResponse. func (r *Response) JSON() *JSONResponse { r.commonHeaders() - return &JSONResponse{writer: r.writer, request: r.request} + return NewJSONResponse(r.writer, r.request) } // HTML returns a HTMLResponse. |