analytics/AnalyticsEvents.js

  1. import AnalyticsBase from './AnalyticsBase'
  2. /**
  3. * @extends module:analytics.AnalyticsBase
  4. *
  5. * @description
  6. * Analytics events class used to request analytics events data from Web API.
  7. *
  8. * @memberof module:analytics
  9. *
  10. * @see https://docs.dhis2.org/master/en/developer/html/webapi_event_analytics.html
  11. */
  12. class AnalyticsEvents extends AnalyticsBase {
  13. /**
  14. * @param {!AnalyticsRequest} req Request object
  15. *
  16. * @returns {Promise} Promise that resolves with the analytics aggregate data from the api.
  17. *
  18. * @example
  19. * const req = new d2.analytics.request()
  20. * .withProgram('eBAyeGv0exc')
  21. * .addDataDimension(['Uvn6LCg7dVU','OdiHJayrsKo'])
  22. * .addPeriodDimension('LAST_4_QUARTERS')
  23. * .addOrgUnitDimension(['lc3eMKXaEfw','PMa2VCrupOd'])
  24. * .addOrgUnitFilter('O6uvpzGd5pu')
  25. * .withStartDate('2017-10-01')
  26. * .withEndDate('2017-10-31');
  27. *
  28. * d2.analytics.events.getAggregate(req)
  29. * .then(console.log);
  30. */
  31. getAggregate(req) {
  32. return this.fetch(req.withPath('events/aggregate'))
  33. }
  34. /**
  35. * @param {!AnalyticsRequest} req Request object
  36. *
  37. * @returns {Promise} Promise that resolves with the analytics count data from the api.
  38. *
  39. * @example
  40. * const req = new d2.analytics.request()
  41. * .withProgram('eBAyeGv0exc')
  42. * .addDataDimension(['Uvn6LCg7dVU','OdiHJayrsKo'])
  43. * .addPeriodDimension('LAST_4_QUARTERS')
  44. * .addOrgUnitDimension(['lc3eMKXaEfw','PMa2VCrupOd'])
  45. * .addOrgUnitFilter('O6uvpzGd5pu')
  46. * .withStartDate('2017-10-01')
  47. * .withEndDate('2017-10-31');
  48. *
  49. * d2.analytics.events.getCount(req)
  50. * .then(console.log);
  51. */
  52. getCount(req) {
  53. return this.fetch(req.withPath('events/count'))
  54. }
  55. /**
  56. * @param {!AnalyticsRequest} req Request object
  57. * Must contain clusterSize and bbox parameters.
  58. *
  59. * @returns {Promise} Promise that resolves with the analytics cluster data from the api.
  60. *
  61. * @example
  62. * const req = new d2.analytics.request()
  63. * .withProgram('eBAyeGv0exc')
  64. * .addDataDimension(['Uvn6LCg7dVU','OdiHJayrsKo'])
  65. * .addPeriodDimension('LAST_4_QUARTERS')
  66. * .addOrgUnitDimension(['lc3eMKXaEfw','PMa2VCrupOd'])
  67. * .addOrgUnitFilter('O6uvpzGd5pu')
  68. * .withStartDate('2017-10-01')
  69. * .withEndDate('2017-10-31')
  70. * .withClusterSize(100000)
  71. * .withBbox('-13.2682125,7.3721619,-10.4261178,9.904012');
  72. *
  73. * d2.analytics.events.getCluster(req)
  74. * .then(console.log);
  75. */
  76. getCluster(req) {
  77. return this.fetch(req.withPath('events/cluster'))
  78. }
  79. /**
  80. * @param {!AnalyticsRequest} req Request object
  81. *
  82. * @returns {Promise} Promise that resolves with the analytics query data from the api.
  83. *
  84. * @example
  85. * const req = new d2.analytics.request()
  86. * .withProgram('eBAyeGv0exc')
  87. * .addDataDimension(['Uvn6LCg7dVU','OdiHJayrsKo'])
  88. * .addPeriodDimension('LAST_4_QUARTERS')
  89. * .addOrgUnitDimension(['lc3eMKXaEfw','PMa2VCrupOd'])
  90. * .addOrgUnitFilter('O6uvpzGd5pu')
  91. * .withStartDate('2017-10-01')
  92. * .withEndDate('2017-10-31');
  93. *
  94. * d2.analytics.events.getQuery(req)
  95. * .then(console.log);
  96. */
  97. getQuery(req) {
  98. return this.fetch(req.withPath('events/query'))
  99. }
  100. }
  101. export default AnalyticsEvents