Optionally include additional data to present in server-side logs (not returned in API response).

This commit is contained in:
2025-11-04 22:24:25 -06:00
parent 06ac861c20
commit 5e05be6d0e
2 changed files with 9 additions and 2 deletions

View File

@@ -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"

View File

@@ -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)