Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
daa78f974a | |||
04bd6aa69f |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
.*.sw?
|
||||
nimcache/
|
||||
test/runner
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Package
|
||||
|
||||
version = "0.1.1"
|
||||
version = "0.2.1"
|
||||
author = "Jonathan Bernard"
|
||||
description = "JDB Software's opinionated extensions and auth layer for Jester."
|
||||
license = "MIT"
|
||||
|
@ -1,4 +1,4 @@
|
||||
import std/json, std/logging, std/strutils, std/sequtils
|
||||
import std/json, std/logging, std/options, std/strutils, std/sequtils
|
||||
import jester, namespaced_logging
|
||||
|
||||
import ./apierror
|
||||
@ -29,8 +29,8 @@ template halt*(
|
||||
break allRoutes
|
||||
|
||||
template sendJsonResp*(
|
||||
code: HttpCode,
|
||||
body: string = "",
|
||||
body: JsonNode,
|
||||
code: HttpCode = Http200,
|
||||
knownOrigins: seq[string],
|
||||
headersToSend: RawHeaders) =
|
||||
## Immediately send a JSON response and stop processing the request.
|
||||
@ -56,16 +56,29 @@ template sendJsonResp*(
|
||||
"Content-Type": CONTENT_TYPE_JSON,
|
||||
"Cache-Control": "no-cache"
|
||||
},
|
||||
body
|
||||
$body
|
||||
)
|
||||
|
||||
proc makeDataBody*(data: JsonNode): string = $(%*{"details":"","data":data })
|
||||
proc makeStatusBody*(details: string): string = $(%*{"details":details})
|
||||
proc makeDataBody*(
|
||||
data: JsonNode,
|
||||
nextOffset = none[int](),
|
||||
totalItems = none[int](),
|
||||
nextLink = none[string](),
|
||||
prevLink = none[string]()): JsonNode =
|
||||
|
||||
result = %*{"details":"","data":data}
|
||||
|
||||
if nextOffset.isSome: result["nextOffset"] = %nextOffset.get
|
||||
if totalItems.isSome: result["totalItems"] = %totalItems.get
|
||||
if nextLink.isSome: result["next"] = %nextLink.get
|
||||
if prevLink.isSome: result["prev"] = %prevLink.get
|
||||
|
||||
proc makeStatusBody*(details: string): JsonNode = %*{"details":details}
|
||||
|
||||
template sendErrorResp*(err: ref ApiError, knownOrigins: seq[string]): void =
|
||||
log().debug err.respMsg & ( if err.msg.len > 0: ": " & err.msg else: "")
|
||||
if not err.parent.isNil: log().debug " original exception: " & err.parent.msg
|
||||
sendJsonResp(err.respCode, makeStatusBody(err.respMsg), knownOrigins, @{:})
|
||||
sendJsonResp(makeStatusBody(err.respMsg), err.respCode, knownOrigins, @{:})
|
||||
|
||||
## CORS support
|
||||
template sendOptionsResp*(
|
||||
|
BIN
test/runner
BIN
test/runner
Binary file not shown.
@ -1,3 +1,3 @@
|
||||
import unittest
|
||||
|
||||
import ./tauth, ./tjson_util
|
||||
import ./tauth, ./tjsonutils
|
||||
|
Reference in New Issue
Block a user