1 | import BaseError = require('extensible-error')
|
2 | import { ErrorObject } from 'ajv'
|
3 |
|
4 | import { Errors } from 'ilp-packet'
|
5 |
|
6 | export default class InvalidJsonBodyError extends BaseError {
|
7 | public ilpErrorCode: string
|
8 | public httpErrorCode: number = 400
|
9 | protected validationErrors: ErrorObject[]
|
10 |
|
11 | constructor (message: string, validationErrors: ErrorObject[]) {
|
12 | super(message)
|
13 |
|
14 | this.ilpErrorCode = Errors.codes.F01_INVALID_PACKET
|
15 | this.validationErrors = validationErrors
|
16 | }
|
17 |
|
18 | debugPrint (log: (message: string) => void, validationError?: ErrorObject) {
|
19 | if (!validationError) {
|
20 | if (this.validationErrors) {
|
21 | for (let ve of this.validationErrors) {
|
22 | this.debugPrint(log, ve)
|
23 | }
|
24 | }
|
25 | return
|
26 | }
|
27 |
|
28 | const additionalInfo = Object.keys(validationError.params).map(key => `${key}=${validationError.params[key]}`).join(' ')
|
29 |
|
30 | log(`-- ${validationError.dataPath}: ${validationError.message}. ${additionalInfo}`)
|
31 | }
|
32 | }
|