UNPKG

970 BPlain TextView Raw
1import BaseError = require('extensible-error')
2import { ErrorObject } from 'ajv'
3
4import { Errors } from 'ilp-packet'
5
6export 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}