Optionally include additional data to present in server-side logs (not returned in API response).
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Package
|
||||
|
||||
version = "0.4.11"
|
||||
version = "0.4.12"
|
||||
author = "Jonathan Bernard"
|
||||
description = "Jonathan's opinionated extensions and auth layer for Jester."
|
||||
license = "MIT"
|
||||
|
||||
@@ -3,7 +3,8 @@ import std/[httpcore, json, options, strutils]
|
||||
type ApiError* = object of CatchableError
|
||||
respMsg*: string
|
||||
respCode*: HttpCode
|
||||
respData*: Option[JsonNode]
|
||||
respData*: Option[JsonNode] # Optional data to include in API response
|
||||
logData*: Option[JsonNode] # Optional data to include in server-side logs
|
||||
|
||||
|
||||
proc newApiError*(
|
||||
@@ -11,11 +12,13 @@ proc newApiError*(
|
||||
respCode: HttpCode,
|
||||
respMsg: string,
|
||||
respData = none[JsonNode](),
|
||||
logData = none[JsonNode](),
|
||||
msg = ""): ref ApiError =
|
||||
result = newException(ApiError, msg, parent)
|
||||
result.respCode = respCode
|
||||
result.respMsg = respMsg
|
||||
result.respData = respData
|
||||
result.logData = logData
|
||||
|
||||
if not parent.isNil:
|
||||
result.trace &= parent.trace
|
||||
@@ -25,12 +28,14 @@ proc raiseApiError*(
|
||||
respCode: HttpCode,
|
||||
respMsg: string,
|
||||
respData = none[JsonNode](),
|
||||
logData = none[JsonNode](),
|
||||
msg = "") =
|
||||
var apiError = newApiError(
|
||||
parent = nil,
|
||||
respCode = respCode,
|
||||
respMsg = respMsg,
|
||||
respData = respData,
|
||||
logData = logData,
|
||||
msg = if msg.isEmptyOrWhitespace: respMsg
|
||||
else: msg)
|
||||
raise apiError
|
||||
@@ -41,6 +46,7 @@ proc raiseApiError*(
|
||||
parent: ref Exception,
|
||||
respMsg: string = "",
|
||||
respData = none[JsonNode](),
|
||||
logData = none[JsonNode](),
|
||||
msg = "") =
|
||||
var apiError = newApiError(
|
||||
parent = parent,
|
||||
@@ -49,6 +55,7 @@ proc raiseApiError*(
|
||||
if respMsg.isEmptyOrWhitespace: parent.msg
|
||||
else: respMsg,
|
||||
respData = respData,
|
||||
logData = logData,
|
||||
msg =
|
||||
if msg.isEmptyOrWhitespace: parent.msg
|
||||
else: msg)
|
||||
|
||||
Reference in New Issue
Block a user