@discipl/law-reg
Version:
Discipl Law and Regulation Compliance Library
70 lines (55 loc) • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.LinkUtil = void 0;
var _index = require("../index");
var _abundanceService = require("@discipl/abundance-service");
var _logging_util = require("./logging_util");
// eslint-disable-next-line no-unused-vars
class LinkUtil {
/**
* Create an LinkUtils
* @param {ServiceProvider} serviceProvider
*/
constructor(serviceProvider) {
this.logger = (0, _logging_util.getDiscplLogger)();
this.serviceProvider = serviceProvider;
}
/**
* Get abundance service
* @return {AbundanceService}
* @private
*/
_getAbundanceService() {
return this.serviceProvider.abundanceService;
}
/**
* Get model link from first case link and actor ssid
* @param {string} firstCaseLink
* @param {ssid} ssid
* @return {Promise<string>}
*/
async getModelLink(firstCaseLink, ssid) {
const core = this._getAbundanceService().getCoreAPI();
const firstCase = await core.get(firstCaseLink, ssid);
const modelLink = firstCase.data['need'][_index.DISCIPL_FLINT_MODEL_LINK];
this.logger.debug('Determined model link to be', modelLink);
return modelLink;
}
/**
* Get first case link from a case link and actor ssid
* @param {string} caseLink
* @param {ssid} ssid
* @return {Promise<string>}
*/
async getFirstCaseLink(caseLink, ssid) {
const core = this._getAbundanceService().getCoreAPI();
const caseClaim = await core.get(caseLink, ssid);
const isFirstActionInCase = !Object.keys(caseClaim.data).includes(_index.DISCIPL_FLINT_ACT_TAKEN);
const firstCaseLink = isFirstActionInCase ? caseLink : caseClaim.data[_index.DISCIPL_FLINT_GLOBAL_CASE];
this.logger.debug('Determined first case link to be', firstCaseLink);
return firstCaseLink;
}
}
exports.LinkUtil = LinkUtil;