'use strict'; /** * Licensed Materials - Property of IBM * IBM Cognos Products: Dashboard * (C) Copyright IBM Corp. 2018, 2019 * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ define(['../lib/@waca/baglass/js/baglass/api/Url'], function (Url) { var _url = null; var _getUrl = function _getUrl() { if (!_url) { _url = new Url(); } return _url; }; var CMHelper = function CMHelper() {}; CMHelper.ID = 1; CMHelper.DEFAULT_NAME = 2; CMHelper.PERMISSIONS = 4; CMHelper.ALL_PROPS = CMHelper.ID | CMHelper.DEFAULT_NAME | CMHelper.PERMISSIONS; var _getRequestedCMProperties = function _getRequestedCMProperties(value) { var properties = []; if (value & CMHelper.ID) { properties.push('id'); } if (value & CMHelper.DEFAULT_NAME) { properties.push('defaultName'); } if (value & CMHelper.PERMISSIONS) { properties.push('permissions'); } return properties.length > 0 ? properties.join(',') : undefined; }; CMHelper.getObjectInfo = function (contentService, storeId, options, cmProps) { options = options || {}; if (!options.data) { var fields = _getRequestedCMProperties(cmProps || CMHelper.ALL_PROPS); if (fields) { options.data = { fields: fields }; } } var url = contentService.getBaseObjectsURL() + '/' + storeId; return contentService.get(url, options); }; CMHelper.getReportName = function (contentService, storeId) { return CMHelper.getObjectInfo(contentService, storeId, undefined, CMHelper.CM_DEFAULT_NAME).then(function (response) { response = response || {}; var data = response.data || []; if (data.length > 0) { return data[0].defaultName; } else { return { errorCode: 404, // Since getObjectInfo didn't throw error, throw 404 for missing object errorKey: 'noTargetInCM' }; } }); }; CMHelper.getPermissions = function (contentService, storeId) { return CMHelper.getObjectInfo(contentService, storeId, undefined, CMHelper.PERMISSIONS).then(function (response) { response = response || {}; var data = response.data || []; if (data.length > 0) { return data[0].permissions; } else { throw new Error('Invalid CM Store Id provided'); } }); }; CMHelper.canExecute = function (contentService, storeId) { return CMHelper.getPermissions(contentService, storeId).then(function (result) { return result && result.length > 0 && result.indexOf('execute') !== -1; }); }; CMHelper.getPathRef = function (options, storeId) { if (!options) { throw new Error('Empty glassContext option provided'); } return _getUrl().getPathRef(options.glassContext, storeId); }; CMHelper.getPathRefInfo = function (options, queryOptions) { if (!options) { throw new Error('Empty glassContext option provided'); } if (queryOptions) { return _getUrl().getPathRefInfo(options.glassContext, queryOptions.storeId, queryOptions.fields, queryOptions.searchPath); } else { throw new Error('Empty query options provided'); } }; CMHelper.reset = function () { _url = null; }; return CMHelper; }); //# sourceMappingURL=CMHelper.js.map