courtbot-engine-data-courtbook
Version:
A data source for courtbot that pulls data from courtbook.
90 lines (72 loc) • 3.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _nodeRestClient = require("node-rest-client");
var _log4js = require("log4js");
var _log4js2 = _interopRequireDefault(_log4js);
var _oauth = require("./oauth");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var client = new _nodeRestClient.Client();
var log = _log4js2.default.getLogger("courtbook");
var bearerTokenFunc = function bearerTokenFunc(oauthConfig) {
return function () {
return (0, _oauth.clientCredentialsBearerToken)(oauthConfig);
};
};
var CourtbookApi = function () {
function CourtbookApi(_ref) {
var courtbookUrl = _ref.courtbookUrl,
oauthConfig = _ref.oauthConfig;
_classCallCheck(this, CourtbookApi);
this._baseUrl = courtbookUrl;
this._getBearerToken = bearerTokenFunc(oauthConfig);
}
_createClass(CourtbookApi, [{
key: "getEvents",
value: function getEvents(caseNumber, party) {
var url = this._baseUrl + "/api/v1/cases/" + caseNumber + "/party/" + party + "/events";
log.debug("Getting events for case " + caseNumber + " and party " + party + " from URL " + url);
return this._getBearerToken().then(function (token) {
return new Promise(function (resolve, reject) {
var args = {
headers: { "Authorization": "Bearer " + token }
};
client.get(url, args, function (data) {
log.trace("Events for case " + caseNumber + " and party " + party + ": ", data);
resolve(data);
}).on("error", function (error) {
log.error("Failed to get events for case " + caseNumber + " and party " + party + ": ", error);
reject(new Error("Failed to get events for case " + caseNumber + " and party " + party + "."));
});
});
});
}
}, {
key: "getParties",
value: function getParties(caseNumber) {
var _this = this;
log.debug("Getting parties for case " + caseNumber + "...");
return this._getBearerToken().then(function (token) {
return new Promise(function (resolve, reject) {
var args = {
headers: { "Authorization": "Bearer " + token }
};
client.get(_this._baseUrl + "/api/v1/cases?caseNumber=" + caseNumber, args, function (data) {
log.trace("Found cases for case " + caseNumber + ":", data);
resolve(data.map(function (courtCase) {
return courtCase.party;
}));
}).on("error", function (error) {
log.error("Failed to get parties for case " + caseNumber, error);
reject(new Error("Failed to get parties for case " + caseNumber + "."));
});
});
});
}
}]);
return CourtbookApi;
}();
exports.default = CourtbookApi;