parent
0e6489d840
commit
4fc27414d2
3 changed files with 40 additions and 15 deletions
|
@ -1,3 +1,5 @@
|
|||
import { humanizeErrors } from '../../modules/errors'
|
||||
|
||||
export function StatusCodeError (statusCode, body, options, response) {
|
||||
this.name = 'StatusCodeError'
|
||||
this.statusCode = statusCode
|
||||
|
@ -12,3 +14,36 @@ export function StatusCodeError (statusCode, body, options, response) {
|
|||
}
|
||||
StatusCodeError.prototype = Object.create(Error.prototype)
|
||||
StatusCodeError.prototype.constructor = StatusCodeError
|
||||
|
||||
export class RegistrationError extends Error {
|
||||
constructor (error) {
|
||||
super()
|
||||
if (Error.captureStackTrace) {
|
||||
Error.captureStackTrace(this)
|
||||
}
|
||||
|
||||
try {
|
||||
// the error is probably a JSON object with a single key, "errors", whose value is another JSON object containing the real errors
|
||||
if (typeof error === 'string') {
|
||||
error = JSON.parse(error)
|
||||
if (error.hasOwnProperty('error')) {
|
||||
error = JSON.parse(error.error)
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof error === 'object') {
|
||||
// replace ap_id with username
|
||||
if (error.ap_id) {
|
||||
error.username = error.ap_id
|
||||
delete error.ap_id
|
||||
}
|
||||
this.message = humanizeErrors(error)
|
||||
} else {
|
||||
this.message = error
|
||||
}
|
||||
} catch (e) {
|
||||
// can't parse it, so just treat it like a string
|
||||
this.message = error
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue