CMHelper.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. 'use strict';
  2. /**
  3. * Licensed Materials - Property of IBM
  4. * IBM Cognos Products: Dashboard
  5. * (C) Copyright IBM Corp. 2018, 2019
  6. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. */
  8. define(['../lib/@waca/baglass/js/baglass/api/Url'], function (Url) {
  9. var _url = null;
  10. var _getUrl = function _getUrl() {
  11. if (!_url) {
  12. _url = new Url();
  13. }
  14. return _url;
  15. };
  16. var CMHelper = function CMHelper() {};
  17. CMHelper.ID = 1;
  18. CMHelper.DEFAULT_NAME = 2;
  19. CMHelper.PERMISSIONS = 4;
  20. CMHelper.ALL_PROPS = CMHelper.ID | CMHelper.DEFAULT_NAME | CMHelper.PERMISSIONS;
  21. var _getRequestedCMProperties = function _getRequestedCMProperties(value) {
  22. var properties = [];
  23. if (value & CMHelper.ID) {
  24. properties.push('id');
  25. }
  26. if (value & CMHelper.DEFAULT_NAME) {
  27. properties.push('defaultName');
  28. }
  29. if (value & CMHelper.PERMISSIONS) {
  30. properties.push('permissions');
  31. }
  32. return properties.length > 0 ? properties.join(',') : undefined;
  33. };
  34. CMHelper.getObjectInfo = function (contentService, storeId, options, cmProps) {
  35. options = options || {};
  36. if (!options.data) {
  37. var fields = _getRequestedCMProperties(cmProps || CMHelper.ALL_PROPS);
  38. if (fields) {
  39. options.data = {
  40. fields: fields
  41. };
  42. }
  43. }
  44. var url = contentService.getBaseObjectsURL() + '/' + storeId;
  45. return contentService.get(url, options);
  46. };
  47. CMHelper.getReportName = function (contentService, storeId) {
  48. return CMHelper.getObjectInfo(contentService, storeId, undefined, CMHelper.CM_DEFAULT_NAME).then(function (response) {
  49. response = response || {};
  50. var data = response.data || [];
  51. if (data.length > 0) {
  52. return data[0].defaultName;
  53. } else {
  54. return {
  55. errorCode: 404, // Since getObjectInfo didn't throw error, throw 404 for missing object
  56. errorKey: 'noTargetInCM'
  57. };
  58. }
  59. });
  60. };
  61. CMHelper.getPermissions = function (contentService, storeId) {
  62. return CMHelper.getObjectInfo(contentService, storeId, undefined, CMHelper.PERMISSIONS).then(function (response) {
  63. response = response || {};
  64. var data = response.data || [];
  65. if (data.length > 0) {
  66. return data[0].permissions;
  67. } else {
  68. throw new Error('Invalid CM Store Id provided');
  69. }
  70. });
  71. };
  72. CMHelper.canExecute = function (contentService, storeId) {
  73. return CMHelper.getPermissions(contentService, storeId).then(function (result) {
  74. return result && result.length > 0 && result.indexOf('execute') !== -1;
  75. });
  76. };
  77. CMHelper.getPathRef = function (options, storeId) {
  78. if (!options) {
  79. throw new Error('Empty glassContext option provided');
  80. }
  81. return _getUrl().getPathRef(options.glassContext, storeId);
  82. };
  83. CMHelper.getPathRefInfo = function (options, queryOptions) {
  84. if (!options) {
  85. throw new Error('Empty glassContext option provided');
  86. }
  87. if (queryOptions) {
  88. return _getUrl().getPathRefInfo(options.glassContext, queryOptions.storeId, queryOptions.fields, queryOptions.searchPath);
  89. } else {
  90. throw new Error('Empty query options provided');
  91. }
  92. };
  93. CMHelper.reset = function () {
  94. _url = null;
  95. };
  96. return CMHelper;
  97. });
  98. //# sourceMappingURL=CMHelper.js.map