UNPKG

@discipl/law-reg

Version:

Discipl Law and Regulation Compliance Library

70 lines (55 loc) 1.86 kB
"use strict"; 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;