You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
janus-client/src/errors.js

68 lines
1.4 KiB

'use strict';
const assert = require('chai').assert;
const _ = require('lodash');
/**
* @class
*/
class ResponseError extends Error {
constructor(res) {
super();
this.name = this.constructor.name;
this.message = _.get(res.getResponse(), 'error.reason', null);
this.code = _.get(res.getResponse(), 'error.code', null);
this.response = res;
}
getCode() {
return this.code;
}
getMessage() {
return this.message;
}
getResponse() {
return this.response;
}
}
/**
* @class
*/
class PluginError extends ResponseError {
constructor(res, handle) {
super(res);
assert(_.has(res.getResponse(), 'plugindata.data.error'));
assert(_.has(res.getResponse(), 'plugindata.data.error_code'));
this.message = _.get(res.getResponse(), 'plugindata.data.error', null);
this.code = _.get(res.getResponse(), 'plugindata.data.error_code', null);
this.handle = handle;
}
getHandle() {
return this.handle;
}
}
/**
* @class
*/
class RequestTimeoutError extends Error {
constructor(req) {
super();
this.name = this.constructor.name;
this.message = 'Request timeout';
this.request = req;
}
}
module.exports.ResponseError = ResponseError;
module.exports.RequestTimeoutError = RequestTimeoutError;
module.exports.PluginError = PluginError;