@authrocket/authrocket-node
Version:
AuthRocket library for Node
54 lines (45 loc) • 1.08 kB
JavaScript
class Response {
static parseResponse(response) {
let data = {},
errors = [],
metadata = {},
body = response.data
if (body.errors) {
errors.push(...body.errors)
delete body.errors
metadata = body
} else if (body.collection) {
data = body.collection
delete body.collection
metadata = body
} else if (response.status == 215) {
metadata = body
} else {
data = body || {}
}
if ((response.status == 409 || response.status == 422) && errors.length == 0) {
errors.push('Validation error')
}
return new Response(data, metadata, errors)
}
constructor(data, metadata, errors) {
if (!Array.isArray(data)) {
for (const key in data) {
this[key] = data[key]
}
}
this.errors = errors
this.metadata = metadata
this.results = data
}
hasErrors() {
return this.errors.length > 0
}
errorMessages() {
return this.errors.join(' ')
}
hasMore() {
return this.metadata.more_results
}
}
module.exports = Response