Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/collection/objects/_objects.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ class Component {
}).then((res) => {
const obj = parseJson(res, ResConstructor, json);
return Promise.resolve({ res, obj });
}).catch((err) => Promise.reject(err));
}).catch((err) => Promise.reject(new Error.BadRequest(err)));
} catch (err) {
return Promise.reject(err);
}
Expand Down
2 changes: 1 addition & 1 deletion src/collection/resources/_resources.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class Components {
}).then((res) => {
const obj = parseJson(res, ResConstructor, json);
return Promise.resolve({ res, obj });
}).catch((err) => Promise.reject(err));
}).catch((err) => Promise.reject(new Error.BadRequest(err)));
} catch (err) {
return Promise.reject(err);
}
Expand Down
14 changes: 13 additions & 1 deletion src/utils/error.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
/* eslint-disable max-classes-per-file */
class ExtendableError extends Error {
constructor(message) {
constructor(message, metadata) {
super();
this.message = message;
this.name = this.constructor.name;
Object.entries(metadata).forEach(([key, value]) => {
if (!this[key]) {
this[key] = value;
}
});
}
}

Expand Down Expand Up @@ -31,9 +36,16 @@ class AbstractClass extends ExtendableError {
}
}

class BadRequest extends ExtendableError {
constructor(requestError) {
super(requestError.response.body.message || 'Bad request', requestError);
}
}

module.exports = {
MethodNeedsId,
AbstractClass,
MethodNeedsArg,
NotImplemented,
BadRequest,
};