@mimik/response-helper
v3.1.0
Published
HTTP response helper for mimik microservices
Downloads
379
Readme
responseHelper
Example
const responseHelper = require('@mimik/response-helper');
responseHelper~cleanObj(mObj, properties) ⇒ object
Clean a mongoose object
Kind: inner method of responseHelper
Returns: object - The clean Mongoose object or the object if null or not an array of Object or not an Object.
Category: sync
| Param | Type | Description | | --- | --- | --- | | mObj | object | Mongoose object to clean. If null or not an Array of Object or not an Object return mObj. | | properties | array | Properties to remove from the object. Top level only. If null or not an Array the defautl ['_id, '__v'] will be used. |
responseHelper~sendError(error, response, otherErrorStatusCode, swaggerOptions, logLevel, parameters) ⇒
The error has the following format:
{
"statusCode": "http code for the response",
"title": "http title associated with the http code",
"message": "error.message or `no error message` if the error does not exist",
"info": "information contains in the error if the error is not an Error",
"error": "extra information associated with the error if error is an Error"
}
The swagger options object has the following properties:
{
"swagger": {
"method": "method of the request",
"path": "path of the request",
"operationId": "operation defined for that route"
},
"correlationId": "correlationId including in the header of the request if present otherwise UUID"
}
The parameters object has the following optional properties:
{
"rfc": "to indicate the error need to be in rfc format and could be in the error itself, if present the value is 7807",
"headers": "object with propertied that need to be added to the header of the response"
}
If an error of statusCode abouve 500 is to be sent, and if logger is enable but not set, a error level log will be generated, otherwise a warning level log will be generated.
Kind: inner method of responseHelper
Returns: null
.
Category: sync
Requires: module:@mimik/sumologic-winston-logger
| Param | Type | Description |
| --- | --- | --- |
| error | object | The error to include in the response. |
| response | object | The http response object. |
| otherErrorStatusCode | number | StatusCode overriding the statusCode of the error to associated with the response. |
| swaggerOptions | object | Object containing the swagger values to be used to setup the error. |
| logLevel | string | To indicate if the response will be logged on not (false
or undefined
or invalid
will indicate that the log is done with error
level). If set to true
, will indicate that no log should be done. |
| parameters | object | Parameters to add or configure the response |
responseHelper~sendResult(result, statusCode, response, swaggerOptions, logLevel, parameters) ⇒
If the result contains a data fields the response is sent as is, otherwise the result is encapsulated under data
property.
The swagger options object has the following properties:
{
"swagger": {
"method": "method of the request",
"path": "path of the request",
"operationId": "operation defined for that route"
},
"correlationId": "correlationId including in the header of the request if present otherwise UUID"
}
The parameters object has the following optional properties:
{
"notTouch": "to indicate the error need to be in rfc format and could be in the error itself, if present the value is 7807",
"headers": "object with properties that need to be added to the header of the response",
"cleanUp": array of string describing the property to remov at the top level of the object in data",
}
Kind: inner method of responseHelper
Returns: null
.
Category: sync
Requires: module:@mimik/sumologic-winston-logger, module:@mimik/lib-filters
| Param | Type | Description |
| --- | --- | --- |
| result | object | Actual result to be send. |
| statusCode | number | Http statusCode to send as part of the response. |
| response | object | The http response object. |
| swaggerOptions | object | Object containing the values to be passed. |
| logLevel | string | To indicate if the response will be logged on not (false
or undefined
or invalid
will indicate that the log is done with error
level). If set to true
, will indicate that no log should be done. |
| parameters | object | Paramters to add or configure the response |
responseHelper~getRichError(val, message, info, err, logLevel, correlationId) ⇒ object
Create a rich error.
Kind: inner method of responseHelper
Returns: object - The rich error.
{
"name": "name of the error",
"info": "info of the error",
"cause": "encapsulated error",
"message": "message of the error"
}
Category: sync
Requires: module:@mimik/sumologic-winston-logger
| Param | Type | Description |
| --- | --- | --- |
| val | object | If it is a string it represents the name of the error, if it is a number it represents the code of the error (e.g. 400, 500, ....). Invalid string or number will result to a 500 Internal Error title. |
| message | string | Message to associated with the error. |
| info | object | Info as a JSON object to associate to the error. |
| err | object | Error to encapsulate in the created error as a cause. |
| logLevel | string | Indicates if the error needs to be log at creation with a specific level. If logLevel is false
a error log will be created with `error`` level. |
| correlationId | string | CorrelationId to be added to the log when log is enabled. |