mirror of https://github.com/waku-org/nwaku.git
32 lines
970 B
Nim
32 lines
970 B
Nim
when (NimMajor, NimMinor) < (1, 4):
|
|
{.push raises: [Defect].}
|
|
else:
|
|
{.push raises: [].}
|
|
|
|
import std/typetraits
|
|
import
|
|
chronicles,
|
|
stew/results,
|
|
presto/common
|
|
import "."/serdes
|
|
|
|
|
|
const MIMETYPE_JSON* = MediaType.init("application/json")
|
|
const MIMETYPE_TEXT* = MediaType.init("text/plain")
|
|
|
|
proc jsonResponse*(t: typedesc[RestApiResponse], data: auto, status: HttpCode = Http200): SerdesResult[RestApiResponse] =
|
|
let encoded = ?encodeIntoJsonBytes(data)
|
|
ok(RestApiResponse.response(encoded, status, $MIMETYPE_JSON))
|
|
|
|
proc internalServerError*(t: typedesc[RestApiResponse]): RestApiResponse =
|
|
RestApiResponse.error(Http500)
|
|
|
|
proc ok*(t: typedesc[RestApiResponse]): RestApiResponse =
|
|
RestApiResponse.response("OK", status=Http200, contentType="text/plain")
|
|
|
|
proc badRequest*(t: typedesc[RestApiResponse]): RestApiResponse =
|
|
RestApiResponse.error(Http400)
|
|
|
|
|
|
proc notFound*(t: typedesc[RestApiResponse]): RestApiResponse =
|
|
RestApiResponse.error(Http404) |