UNPKG

d2

Version:

Javascript library for DHIS2

1,024 lines 54.4 kB
<!DOCTYPE html>
<html lang="en">
<head>
    
    <meta charset="utf-8">
    <title>analytics/AnalyticsRequestPropertiesMixin.js - Documentation</title>
    
    
    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>

<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
  <div class="navicon"></div>
</label>

<label for="nav-trigger" class="overlay"></label>

<nav >
    
    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="GeoFeatures.html">GeoFeatures</a></li><li></li><li><a href="module-analytics.Analytics.html">Analytics</a><ul class='methods'><li data-type='method'><a href="module-analytics.Analytics.html#.getAnalytics">getAnalytics</a></li></ul></li><li><a href="module-analytics.AnalyticsAggregate.html">AnalyticsAggregate</a><ul class='methods'><li data-type='method'><a href="module-analytics.AnalyticsAggregate.html#get">get</a></li><li data-type='method'><a href="module-analytics.AnalyticsAggregate.html#getDataValueSet">getDataValueSet</a></li><li data-type='method'><a href="module-analytics.AnalyticsAggregate.html#getDebugSql">getDebugSql</a></li><li data-type='method'><a href="module-analytics.AnalyticsAggregate.html#getRawData">getRawData</a></li></ul></li><li><a href="module-analytics.AnalyticsEvents.html">AnalyticsEvents</a><ul class='methods'><li data-type='method'><a href="module-analytics.AnalyticsEvents.html#get">get</a></li><li data-type='method'><a href="module-analytics.AnalyticsEvents.html#getAggregate">getAggregate</a></li><li data-type='method'><a href="module-analytics.AnalyticsEvents.html#getCluster">getCluster</a></li><li data-type='method'><a href="module-analytics.AnalyticsEvents.html#getCount">getCount</a></li><li data-type='method'><a href="module-analytics.AnalyticsEvents.html#getQuery">getQuery</a></li></ul></li><li><a href="module-analytics.AnalyticsRequest.html">AnalyticsRequest</a><ul class='methods'><li data-type='method'><a href="module-analytics.AnalyticsRequest.html#fromModel">fromModel</a></li></ul></li><li><a href="module-api.Api.html">Api</a><ul class='methods'><li data-type='method'><a href="module-api.Api.html#get">get</a></li><li data-type='method'><a href="module-api.Api.html#patch">patch</a></li><li data-type='method'><a href="module-api.Api.html#post">post</a></li><li data-type='method'><a href="module-api.Api.html#setBaseUrl">setBaseUrl</a></li><li data-type='method'><a href="module-api.Api.html#setDefaultHeaders">setDefaultHeaders</a></li><li data-type='method'><a href="module-api.Api.html#setUnauthorizedCallback">setUnauthorizedCallback</a></li><li data-type='method'><a href="module-api.Api.html#update">update</a></li></ul></li><li><a href="module-current-user.CurrentUser.html">CurrentUser</a><ul class='methods'><li data-type='method'><a href="module-current-user.CurrentUser.html#.create">create</a></li><li data-type='method'><a href="module-current-user.CurrentUser.html#canCreate">canCreate</a></li><li data-type='method'><a href="module-current-user.CurrentUser.html#canCreatePrivate">canCreatePrivate</a></li><li data-type='method'><a href="module-current-user.CurrentUser.html#canCreatePublic">canCreatePublic</a></li><li data-type='method'><a href="module-current-user.CurrentUser.html#canDelete">canDelete</a></li><li data-type='method'><a href="module-current-user.CurrentUser.html#canUpdate">canUpdate</a></li><li data-type='method'><a href="module-current-user.CurrentUser.html#getDataViewOrganisationUnits">getDataViewOrganisationUnits</a></li><li data-type='method'><a href="module-current-user.CurrentUser.html#getOrganisationUnits">getOrganisationUnits</a></li><li data-type='method'><a href="module-current-user.CurrentUser.html#getUserGroupIds">getUserGroupIds</a></li><li data-type='method'><a href="module-current-user.CurrentUser.html#getUserGroups">getUserGroups</a></li><li data-type='method'><a href="module-current-user.CurrentUser.html#getUserRoles">getUserRoles</a></li></ul></li><li><a href="module-current-user.UserAuthorities.html">UserAuthorities</a><ul class='methods'><li data-type='method'><a href="module-current-user.UserAuthorities.html#.create">create</a></li><li data-type='method'><a href="module-current-user.UserAuthorities.html#has">has</a></li></ul></li><li><a href="module-current-user.UserDataStore.html">UserDataStore</a><ul class='methods'><li data-type='method'><a href="module-current-user.UserDataStore.html#.getUserDataStore">getUserDataStore</a></li><li data-type='method'><a href="module-current-user.UserDataStore.html#create">create</a></li><li data-type='method'><a href="module-current-user.UserDataStore.html#delete">delete</a></li><li data-type='method'><a href="module-current-user.UserDataStore.html#get">get</a></li><li data-type='method'><a href="module-current-user.UserDataStore.html#getAll">getAll</a></li><li data-type='method'><a href="module-current-user.UserDataStore.html#has">has</a></li></ul></li><li><a href="module-current-user.UserDataStoreNamespace.html">UserDataStoreNamespace</a><ul class='methods'><li data-type='method'><a href="module-current-user.UserDataStoreNamespace.html#delete">delete</a></li><li data-type='method'><a href="module-current-user.UserDataStoreNamespace.html#get">get</a></li><li data-type='method'><a href="module-current-user.UserDataStoreNamespace.html#getKeys">getKeys</a></li><li data-type='method'><a href="module-current-user.UserDataStoreNamespace.html#set">set</a></li><li data-type='method'><a href="module-current-user.UserDataStoreNamespace.html#update">update</a></li></ul></li><li><a href="module-current-user.UserSettings.html">UserSettings</a><ul class='methods'><li data-type='method'><a href="module-current-user.UserSettings.html#all">all</a></li><li data-type='method'><a href="module-current-user.UserSettings.html#get">get</a></li><li data-type='method'><a href="module-current-user.UserSettings.html#set">set</a></li></ul></li><li><a href="module-datastore.DataStore.html">DataStore</a><ul class='methods'><li data-type='method'><a href="module-datastore.DataStore.html#.getDataStore">getDataStore</a></li><li data-type='method'><a href="module-datastore.DataStore.html#create">create</a></li><li data-type='method'><a href="module-datastore.DataStore.html#delete">delete</a></li><li data-type='method'><a href="module-datastore.DataStore.html#get">get</a></li><li data-type='method'><a href="module-datastore.DataStore.html#getAll">getAll</a></li><li data-type='method'><a href="module-datastore.DataStore.html#has">has</a></li></ul></li><li><a href="module-datastore.DataStoreNamespace.html">DataStoreNamespace</a><ul class='methods'><li data-type='method'><a href="module-datastore.DataStoreNamespace.html#delete">delete</a></li><li data-type='method'><a href="module-datastore.DataStoreNamespace.html#get">get</a></li><li data-type='method'><a href="module-datastore.DataStoreNamespace.html#getKeys">getKeys</a></li><li data-type='method'><a href="module-datastore.DataStoreNamespace.html#getMetaData">getMetaData</a></li><li data-type='method'><a href="module-datastore.DataStoreNamespace.html#set">set</a></li><li data-type='method'><a href="module-datastore.DataStoreNamespace.html#update">update</a></li></ul></li><li><a href="module-i18n-I18n.html">I18n</a><ul class='methods'><li data-type='method'><a href="module-i18n-I18n.html#.getI18n">getI18n</a></li><li data-type='method'><a href="module-i18n-I18n.html#addSource">addSource</a></li><li data-type='method'><a href="module-i18n-I18n.html#addStrings">addStrings</a></li><li data-type='method'><a href="module-i18n-I18n.html#getTranslation">getTranslation</a></li><li data-type='method'><a href="module-i18n-I18n.html#getUntranslatedStrings">getUntranslatedStrings</a></li><li data-type='method'><a href="module-i18n-I18n.html#isTranslated">isTranslated</a></li><li data-type='method'><a href="module-i18n-I18n.html#load">load</a></li></ul></li><li><a href="module-model.Filter.html">Filter</a><ul class='methods'><li data-type='method'><a href="module-model.Filter.html#.getFilter">getFilter</a></li><li data-type='method'><a href="module-model.Filter.html#equals">equals</a></li><li data-type='method'><a href="module-model.Filter.html#ilike">ilike</a></li><li data-type='method'><a href="module-model.Filter.html#in">in</a></li><li data-type='method'><a href="module-model.Filter.html#like">like</a></li><li data-type='method'><a href="module-model.Filter.html#notEqual">notEqual</a></li><li data-type='method'><a href="module-model.Filter.html#notIn">notIn</a></li><li data-type='method'><a href="module-model.Filter.html#nToken">nToken</a></li><li data-type='method'><a href="module-model.Filter.html#on">on</a></li><li data-type='method'><a href="module-model.Filter.html#operator">operator</a></li><li data-type='method'><a href="module-model.Filter.html#token">token</a></li></ul></li><li><a href="module-model.Filters.html">Filters</a><ul class='methods'><li data-type='method'><a href="module-model.Filters.html#.getFilters">getFilters</a></li><li data-type='method'><a href="module-model.Filters.html#getFilterList">getFilterList</a></li><li data-type='method'><a href="module-model.Filters.html#getFilters">getFilters</a></li><li data-type='method'><a href="module-model.Filters.html#getQueryFilterValues">getQueryFilterValues</a></li><li data-type='method'><a href="module-model.Filters.html#list">list</a></li><li data-type='method'><a href="module-model.Filters.html#logicMode">logicMode</a></li><li data-type='method'><a href="module-model.Filters.html#on">on</a></li></ul></li><li><a href="module-model.Model.html">Model</a><ul class='methods'><li data-type='method'><a href="module-model.Model.html#.create">create</a></li></ul></li><li><a href="module-model.ModelBase.html">ModelBase</a><ul class='methods'><li data-type='method'><a href="module-model.ModelBase.html#create">create</a></li><li data-type='method'><a href="module-model.ModelBase.html#delete">delete</a></li><li data-type='method'><a href="module-model.ModelBase.html#getCollectionChildren">getCollectionChildren</a></li><li data-type='method'><a href="module-model.ModelBase.html#getCollectionChildrenPropertyNames">getCollectionChildrenPropertyNames</a></li><li data-type='method'><a href="module-model.ModelBase.html#getDirtyChildren">getDirtyChildren</a></li><li data-type='method'><a href="module-model.ModelBase.html#getDirtyPropertyNames">getDirtyPropertyNames</a></li><li data-type='method'><a href="module-model.ModelBase.html#getEmbeddedObjectCollectionPropertyNames">getEmbeddedObjectCollectionPropertyNames</a></li><li data-type='method'><a href="module-model.ModelBase.html#getReferenceProperties">getReferenceProperties</a></li><li data-type='method'><a href="module-model.ModelBase.html#hasDirtyChildren">hasDirtyChildren</a></li><li data-type='method'><a href="module-model.ModelBase.html#isDirty">isDirty</a></li><li data-type='method'><a href="module-model.ModelBase.html#resetDirtyState">resetDirtyState</a></li><li data-type='method'><a href="module-model.ModelBase.html#save">save</a></li><li data-type='method'><a href="module-model.ModelBase.html#toJSON">toJSON</a></li><li data-type='method'><a href="module-model.ModelBase.html#validate">validate</a></li></ul></li><li><a href="module-model.ModelCollection.html">ModelCollection</a><ul class='methods'><li data-type='method'><a href="module-model.ModelCollection.html#add">add</a></li><li data-type='method'><a href="module-model.ModelCollection.html#clear">clear</a></li><li data-type='method'><a href="module-model.ModelCollection.html#toArray">toArray</a></li></ul></li><li><a href="module-model.ModelCollectionProperty.html">ModelCollectionProperty</a><ul class='methods'><li data-type='method'><a href="module-model.ModelCollectionProperty.html#.create">create</a></li><li data-type='method'><a href="module-model.ModelCollectionProperty.html#add">add</a></li><li data-type='method'><a href="module-model.ModelCollectionProperty.html#isDirty">isDirty</a></li><li data-type='method'><a href="module-model.ModelCollectionProperty.html#remove">remove</a></li><li data-type='method'><a href="module-model.ModelCollectionProperty.html#resetDirtyState">resetDirtyState</a></li><li data-type='method'><a href="module-model.ModelCollectionProperty.html#save">save</a></li><li data-type='method'><a href="module-model.ModelCollectionProperty.html#updateDirty">updateDirty</a></li></ul></li><li><a href="module-model.ModelDefinition.html">ModelDefinition</a><ul class='methods'><li data-type='method'><a href="module-model.ModelDefinition.html#.createFromSchema">createFromSchema</a></li><li data-type='method'><a href="module-model.ModelDefinition.html#create">create</a></li><li data-type='method'><a href="module-model.ModelDefinition.html#delete">delete</a></li><li data-type='method'><a href="module-model.ModelDefinition.html#get">get</a></li><li data-type='method'><a href="module-model.ModelDefinition.html#getOwnedPropertyNames">getOwnedPropertyNames</a></li><li data-type='method'><a href="module-model.ModelDefinition.html#getTranslatableProperties">getTranslatableProperties</a></li><li data-type='method'><a href="module-model.ModelDefinition.html#getTranslatablePropertiesWithKeys">getTranslatablePropertiesWithKeys</a></li><li data-type='method'><a href="module-model.ModelDefinition.html#isTranslatable">isTranslatable</a></li><li data-type='method'><a href="module-model.ModelDefinition.html#list">list</a></li><li data-type='method'><a href="module-model.ModelDefinition.html#save">save</a></li></ul></li><li><a href="module-model.ModelDefinitions.html">ModelDefinitions</a><ul class='methods'><li data-type='method'><a href="module-model.ModelDefinitions.html#add">add</a></li><li data-type='method'><a href="module-model.ModelDefinitions.html#mapThroughDefinitions">mapThroughDefinitions</a></li></ul></li><li><a href="module-model.ModelValidation.html">ModelValidation</a><ul class='methods'><li data-type='method'><a href="module-model.ModelValidation.html#.getModelValidation">getModelValidation</a></li><li data-type='method'><a href="module-model.ModelValidation.html#validate">validate</a></li><li data-type='method'><a href="module-model.ModelValidation.html#validateAgainstSchema">validateAgainstSchema</a></li></ul></li><li><a href="module-model.Pager.html">Pager</a><ul class='methods'><li data-type='method'><a href="module-model.Pager.html#getNextPage">getNextPage</a></li><li data-type='method'><a href="module-model.Pager.html#getPreviousPage">getPreviousPage</a></li><li data-type='method'><a href="module-model.Pager.html#goToPage">goToPage</a></li><li data-type='method'><a href="module-model.Pager.html#hasNextPage">hasNextPage</a></li><li data-type='method'><a href="module-model.Pager.html#hasPreviousPage">hasPreviousPage</a></li></ul></li><li><a href="module-system.System.html">System</a><ul class='methods'><li data-type='method'><a href="module-system.System.html#.compareVersions">compareVersions</a></li><li data-type='method'><a href="module-system.System.html#.getSystem">getSystem</a></li><li data-type='method'><a href="module-system.System.html#.isVersionCompatible">isVersionCompatible</a></li><li data-type='method'><a href="module-system.System.html#.parseVersionString">parseVersionString</a></li><li data-type='method'><a href="module-system.System.html#installAppVersion">installAppVersion</a></li><li data-type='method'><a href="module-system.System.html#loadAppStore">loadAppStore</a></li><li data-type='method'><a href="module-system.System.html#loadInstalledApps">loadInstalledApps</a></li><li data-type='method'><a href="module-system.System.html#reloadApps">reloadApps</a></li><li data-type='method'><a href="module-system.System.html#setInstalledApps">setInstalledApps</a></li><li data-type='method'><a href="module-system.System.html#setSystemInfo">setSystemInfo</a></li><li data-type='method'><a href="module-system.System.html#uninstallApp">uninstallApp</a></li><li data-type='method'><a href="module-system.System.html#uploadApp">uploadApp</a></li></ul></li><li><a href="module-system.SystemConfiguration.html">SystemConfiguration</a><ul class='methods'><li data-type='method'><a href="module-system.SystemConfiguration.html#all">all</a></li><li data-type='method'><a href="module-system.SystemConfiguration.html#get">get</a></li></ul></li><li><a href="module-system.SystemSettings.html">SystemSettings</a><ul class='methods'><li data-type='method'><a href="module-system.SystemSettings.html#all">all</a></li><li data-type='method'><a href="module-system.SystemSettings.html#get">get</a></li></ul></li></ul><h3>Modules</h3><ul><li><a href="module-analytics.html">analytics</a></li><li><a href="module-api.html">api</a></li><li><a href="module-current-user.html">current-user</a></li><li><a href="module-d2.html">d2</a><ul class='members'><li data-type='member'><a href="module-d2.html#.config">config</a></li></ul><ul class='methods'><li data-type='method'><a href="module-d2.html#.getInstance">getInstance</a></li><li data-type='method'><a href="module-d2.html#.getManifest">getManifest</a></li><li data-type='method'><a href="module-d2.html#.init">init</a></li><li data-type='method'><a href="module-d2.html#~getUserSettings">getUserSettings</a></li></ul></li><li><a href="module-datastore.html">datastore</a></li><li><a href="module-i18n.html">i18n</a></li><li><a href="module-lib_check.html">lib/check</a><ul class='methods'><li data-type='method'><a href="module-lib_check.html#.checkDefined">checkDefined</a></li><li data-type='method'><a href="module-lib_check.html#.isValidUid">isValidUid</a></li></ul></li><li><a href="module-lib_utils.html">lib/utils</a><ul class='methods'><li data-type='method'><a href="module-lib_utils.html#.customEncodeURIComponent">customEncodeURIComponent</a></li><li data-type='method'><a href="module-lib_utils.html#.pick">pick</a></li></ul></li><li><a href="module-model.html">model</a></li><li><a href="module-period_generators.html">period/generators</a><ul class='methods'><li data-type='method'><a href="module-period_generators.html#.createPeriodGeneratorsForLocale">createPeriodGeneratorsForLocale</a></li></ul></li><li><a href="module-system.html">system</a></li><li><a href="module-uid.html">uid</a><ul class='methods'><li data-type='method'><a href="module-uid.html#.generateUid">generateUid</a></li><li data-type='method'><a href="module-uid.html#.isValidUid">isValidUid</a></li></ul></li></ul><h3>Namespaces</h3><ul><li><a href="module-d2.init-d2.html">d2</a></li></ul><h3>Tutorials</h3><ul><li><a href="tutorial-FAQ.html">FAQ</a></li><li><a href="tutorial-overview.html">overview</a></li></ul><h3>Global</h3><ul><li><a href="global.html#addDataDimension">addDataDimension</a></li><li><a href="global.html#addDataFilter">addDataFilter</a></li><li><a href="global.html#addDimension">addDimension</a></li><li><a href="global.html#addFilter">addFilter</a></li><li><a href="global.html#addOrgUnitDimension">addOrgUnitDimension</a></li><li><a href="global.html#addOrgUnitFilter">addOrgUnitFilter</a></li><li><a href="global.html#addPeriodDimension">addPeriodDimension</a></li><li><a href="global.html#addPeriodFilter">addPeriodFilter</a></li><li><a href="global.html#byOrgUnit">byOrgUnit</a></li><li><a href="global.html#computeWeekBasedPeriod">computeWeekBasedPeriod</a></li><li><a href="global.html#getAll">getAll</a></li><li><a href="global.html">getGeoFeatures</a></li><li><a href="global.html">isValidDisplayName</a></li><li><a href="global.html">isValidOrgUnit</a></li><li><a href="global.html">isValidOrgUnitGroup</a></li><li><a href="global.html">isValidOrgUnitLevel</a></li><li><a href="global.html">isValidUserOrgUnit</a></li><li><a href="global.html#withAggregateData">withAggregateData</a></li><li><a href="global.html#withAggregationType">withAggregationType</a></li><li><a href="global.html#withApprovalLevel">withApprovalLevel</a></li><li><a href="global.html#withAsc">withAsc</a></li><li><a href="global.html#withBbox">withBbox</a></li><li><a href="global.html#withClusterSize">withClusterSize</a></li><li><a href="global.html#withCollapseDataDimensions">withCollapseDataDimensions</a></li><li><a href="global.html#withColumns">withColumns</a></li><li><a href="global.html#withCoordinateField">withCoordinateField</a></li><li><a href="global.html#withCoordinatesOnly">withCoordinatesOnly</a></li><li><a href="global.html#withDesc">withDesc</a></li><li><a href="global.html#withDisplayProperty">withDisplayProperty</a></li><li><a href="global.html#withEndDate">withEndDate</a></li><li><a href="global.html#withEventStatus">withEventStatus</a></li><li><a href="global.html#withFormat">withFormat</a></li><li><a href="global.html#withHideEmptyColumns">withHideEmptyColumns</a></li><li><a href="global.html#withHideEmptyRows">withHideEmptyRows</a></li><li><a href="global.html#withHierarchyMeta">withHierarchyMeta</a></li><li><a href="global.html#withIgnoreLimit">withIgnoreLimit</a></li><li><a href="global.html#withIncludeClusterPoints">withIncludeClusterPoints</a></li><li><a href="global.html#withIncludeMetadataDetails">withIncludeMetadataDetails</a></li><li><a href="global.html#withIncludeNumDen">withIncludeNumDen</a></li><li><a href="global.html#withInputIdScheme">withInputIdScheme</a></li><li><a href="global.html#withLimit">withLimit</a></li><li><a href="global.html#withMeasureCriteria">withMeasureCriteria</a></li><li><a href="global.html#withOuMode">withOuMode</a></li><li><a href="global.html#withOutputIdScheme">withOutputIdScheme</a></li><li><a href="global.html#withOutputType">withOutputType</a></li><li><a href="global.html#withPage">withPage</a></li><li><a href="global.html#withPageSize">withPageSize</a></li><li><a href="global.html#withParameters">withParameters</a></li><li><a href="global.html#withPath">withPath</a></li><li><a href="global.html#withPreAggregationMeasureCriteria">withPreAggregationMeasureCriteria</a></li><li><a href="global.html#withProgram">withProgram</a></li><li><a href="global.html#withProgramStatus">withProgramStatus</a></li><li><a href="global.html#withRelativePeriodDate">withRelativePeriodDate</a></li><li><a href="global.html#withRows">withRows</a></li><li><a href="global.html#withShowHierarchy">withShowHierarchy</a></li><li><a href="global.html#withSkipData">withSkipData</a></li><li><a href="global.html#withSkipMeta">withSkipMeta</a></li><li><a href="global.html#withSkipRounding">withSkipRounding</a></li><li><a href="global.html#withSortOrder">withSortOrder</a></li><li><a href="global.html#withStage">withStage</a></li><li><a href="global.html#withStartDate">withStartDate</a></li><li><a href="global.html#withTableLayout">withTableLayout</a></li><li><a href="global.html#withUserOrgUnit">withUserOrgUnit</a></li><li><a href="global.html#withValue">withValue</a></li></ul>
</nav>

<div id="main">
    
    <h1 class="page-title">analytics/AnalyticsRequestPropertiesMixin.js</h1>
    

    



    
    <section>
        <article>
            <pre class="prettyprint source linenums"><code>/* eslint no-console: 0 */

import AnalyticsRequest from './AnalyticsRequest'

/**
 * @private
 * @description
 * AnalyticsRequest properties mixin function
 *
 * @param {*} base The base class to mix onto
 * @return {module:analytics.AnalyticsRequestPropertiesMixin} The mixin class
 */
/**
 * @private
 * @description
 * AnalyticsRequest properties mixin
 *
 * @alias module:analytics.AnalyticsRequestPropertiesMixin
 */
const AnalyticsRequestPropertiesMixin = base =>
    class extends base {
        /**
         * Sets the query parameters of the request
         *
         * @param {!Object} parameters The query parameters to add/modify to the request
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *   .withParameters({ completedOnly: true, aggregationType: 'AVERAGE' });
         */
        withParameters(params) {
            if (params) {
                this.parameters = {
                    ...this.parameters,
                    ...params,
                }
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Sets the URL path for the request.
         * It appends the given path to the request's URL.
         *
         * @param {!String} path The path of the response
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withPath('aggregate');
         */
        withPath(path) {
            if (path) {
                this.path = path
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Sets the response format for the request.
         * It appends the file extension to the request's path.
         *
         * @param {String} [format=json] The format of the response
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withFormat('xml');
         */
        withFormat(format = 'json') {
            this.format = format
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the aggregationType query parameter to the request.
         *
         * @param {String} aggregationType The aggregationType value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withAggregationType('SUM');
         */
        withAggregationType(value) {
            const aggregationType = value.toUpperCase()

            const aggregationTypes = new Set([
                'AVERAGE',
                'AVERAGE_SUM_ORG_UNIT',
                'COUNT',
                'LAST',
                'LAST_AVERAGE_ORG_UNIT',
                'MIN',
                'MAX',
                'STDDEV',
                'SUM',
                'VARIANCE',
            ])

            if (aggregationTypes.has(aggregationType)) {
                this.parameters.aggregationType = aggregationType
            } else if (aggregationType !== 'DEFAULT') {
                console.warn(
                    `d2.analytics.request.withAggregationType(): "${value}" not listed as possible value`
                )
                this.parameters.aggregationType = value
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the measureCriteria query parameter to the request.
         *
         * @param {!String} measureCriteria The measureCriteria value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withMeasureCriteria('GE:10;LT:50');
         */
        withMeasureCriteria(criteria) {
            if (criteria) {
                this.parameters.measureCriteria = criteria
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the preAggregationMeasureCriteria query parameter to the request.
         *
         * @param {!String} preAggregationMeasureCriteria The preAggregationMeasureCriteria value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withPreAggregationMeasureCriteria('GE:10;LT:50');
         */
        withPreAggregationMeasureCriteria(criteria) {
            if (criteria) {
                this.parameters.preAggregationMeasureCriteria = criteria
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the skipMeta query parameter to the request.
         *
         * @param {Boolean} [skipMeta=true] The skipMeta value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withSkipMeta();
         */
        withSkipMeta(flag = true) {
            this.parameters.skipMeta = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the skipData query parameter to the request.
         *
         * @param {Boolean} [skipData=true] The skipData value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withSkipData();
         */
        withSkipData(flag = true) {
            this.parameters.skipData = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the hierarchyMeta query parameter to the request.
         *
         * @param {Boolean} [hierarchyMeta=true] The hierarchyMeta value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withHierarchyMeta();
         */
        withHierarchyMeta(flag = true) {
            this.parameters.hierarchyMeta = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the ignoreLimit query parameter to the request.
         *
         * @param {Boolean} [ignoreLimit=true] The ignoreLimit value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withIgnoreLimit();
         */
        withIgnoreLimit(flag = true) {
            this.parameters.ignoreLimit = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the tableLayout query parameter to the request.
         *
         * @param {Boolean} [tableLayout=true] The tableLayout value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withTableLayout();
         */
        withTableLayout(flag = true) {
            this.parameters.tableLayout = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the hideEmptyRows query parameter to the request.
         *
         * @param {Boolean} [hideEmptyRows=true] The hideEmptyRows value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withHideEmptyRows();
         */
        withHideEmptyRows(flag = true) {
            this.parameters.hideEmptyRows = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the hideEmptyColumns query parameter to the request.
         *
         * @param {Boolean} [hideEmptyColumns=true] The hideEmptyColumns value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withHideEmptyColumns();
         */
        withHideEmptyColumns(flag = true) {
            this.parameters.hideEmptyColumns = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the showHierarchy query parameter to the request.
         *
         * @param {Boolean} [showHierarchy=true] The showHierarchy value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withShowHierarchy();
         */
        withShowHierarchy(flag = true) {
            this.parameters.showHierarchy = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the includeNumDen query parameter to the request.
         *
         * @param {Boolean} [includeNumDen=true] The includeNumDen value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withIncludeNumDen();
         */
        withIncludeNumDen(flag = true) {
            this.parameters.includeNumDen = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the includeMetadataDetails query parameter to the request.
         *
         * @param {Boolean} [includeMetadataDetails=true] The includeMetadataDetails value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withIncludeMetadataDetails();
         */
        withIncludeMetadataDetails(flag = true) {
            this.parameters.includeMetadataDetails = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the displayProperty query parameter to the request.
         *
         * @param {!String} displayProperty The displayProperty value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withDisplayProperty('SHORTNAME');
         */
        withDisplayProperty(value) {
            const displayProperty = value.toUpperCase()

            const displayProperties = new Set(['NAME', 'SHORTNAME'])

            if (displayProperties.has(displayProperty)) {
                this.parameters.displayProperty = displayProperty
            } else {
                console.warn(
                    `d2.analytics.request.withDisplayProperty(): "${value}" not listed as possible value`
                )
                this.parameters.displayProperty = value
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the displayProperty query parameter to the request.
         *
         * @param {!String} displayProperty The displayProperty value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withDisplayProperty('SHORTNAME');
         */
        withOutputIdScheme(scheme) {
            if (scheme) {
                this.parameters.outputIdScheme = scheme
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the inputIdScheme query parameter to the request.
         *
         * @param {!String} inputIdScheme The inputIdScheme value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withInputIdScheme('CODE');
         */
        withInputIdScheme(scheme) {
            if (scheme) {
                this.parameters.inputIdScheme = scheme
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the approvalLevel query parameter to the request.
         *
         * @param {!String} approvalLevel The approvalLevel value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withApprovalLevel('');
         */
        withApprovalLevel(level) {
            if (level) {
                this.parameters.approvalLevel = level
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the relativePeriodDate query parameter to the request.
         *
         * @param {!String} relativePeriodDate The relativePeriodDate value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withRelativePeriodDate('LAST_12_MONTHS');
         */
        withRelativePeriodDate(date) {
            if (date) {
                this.parameters.relativePeriodDate = date
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the userOrgUnit query parameter to the request.
         *
         * @param {!String} userOrgUnit The userOrgUnit value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withUserOrgUnit('O6uvpzGd5pu');
         */
        withUserOrgUnit(orgUnit) {
            if (orgUnit) {
                this.parameters.userOrgUnit = orgUnit
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the columns query parameter to the request.
         *
         * @param {!String} columns The dimensions identifiers (separated by ;)
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withColumns('dx;ou');
         */
        withColumns(dimensions) {
            if (dimensions) {
                this.parameters.columns = dimensions
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the rows query parameter to the request.
         *
         * @param {!String} rows The dimensions identifiers (separated by ;)
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withRows('pe');
         */
        withRows(dimensions) {
            if (dimensions) {
                this.parameters.rows = dimensions
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the startDate query parameter to the request.
         *
         * @param {!String} startDate The startDate value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withStartDate('2017-11-28');
         */
        withStartDate(date) {
            if (date) {
                this.parameters.startDate = date
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the endDate query parameter to the request.
         *
         * @param {!String} endDate The endDate value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withEndDate('2017-12-31');
         */
        withEndDate(date) {
            if (date) {
                this.parameters.endDate = date
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Sets the program for the request.
         * It appends the program id to the request's path.
         *
         * @param {!String} program The program id
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withProgram('eBAyeGv0exc');
         */
        withProgram(program) {
            if (program) {
                this.program = program
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the stage query parameter to the request.
         *
         * @param {!String} stage The stage value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withStage('Zj7UnCAulEk');
         */
        withStage(stage) {
            if (stage) {
                this.parameters.stage = stage
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the eventStatus query parameter to the request.
         *
         * @param {!String} eventStatus The eventStatus value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withEventStatus('COMPLETED');
         */
        withEventStatus(value) {
            const eventStatus = value.toUpperCase()

            const eventStatuses = new Set([
                'ACTIVE',
                'COMPLETED',
                'SCHEDULED',
                'OVERDUE',
                'SKIPPED',
            ])

            if (eventStatuses.has(eventStatus)) {
                this.parameters.eventStatus = eventStatus
            } else {
                console.warn(
                    `d2.analytics.request.withEventStatus(): "${value}" not listed as possible value`
                )
                this.parameters.eventStatus = value
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the programStatus query parameter to the request.
         *
         * @param {!String} programStatus The programStatus value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withProgramStatus('COMPLETED');
         */
        withProgramStatus(value) {
            const programStatus = value.toUpperCase()

            const programStatuses = new Set([
                'ACTIVE',
                'COMPLETED',
                'CANCELLED',
            ])

            if (programStatuses.has(programStatus)) {
                this.parameters.programStatus = programStatus
            } else {
                console.warn(
                    `d2.analytics.request.withProgramStatus(): "${value}" not listed as possible value`
                )
                this.parameters.programStatus = value
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the ouMode query parameter to the request.
         *
         * @param {!String} ouMode The ouMode value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withOuMode('CHILDREN');
         */
        withOuMode(value) {
            const ouMode = value.toUpperCase()

            const ouModes = new Set(['DESCENDANTS', 'CHILDREN', 'SELECTED'])

            if (ouModes.has(ouMode)) {
                this.parameters.ouMode = ouMode
            } else {
                console.warn(
                    `d2.analytics.request.withOuMode(): "${value}" not listed as possible value`
                )
                this.parameters.ouMode = value
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the asc query parameter to the request.
         *
         * @param {!String} value The dimensions to be sorted ascending
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withAsc('EVENTDATE');
         */
        withAsc(value) {
            if (value) {
                this.parameters.asc = value
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the desc query parameter to the request.
         *
         * @param {!String} value The dimensions to be sorted descending
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withDesc('OUNAME');
         */
        withDesc(value) {
            if (value) {
                this.parameters.desc = value
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the coordinatesOnly query parameter to the request.
         *
         * @param {Boolean} [coordinatesOnly=true] The coordinatesOnly value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withCoordinatesOnly();
         */
        withCoordinatesOnly(flag = true) {
            this.parameters.coordinatesOnly = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the page query parameter to the request.
         *
         * @param {!Number} [page=1] The page number
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withPage(2);
         */
        withPage(page = 1) {
            this.parameters.page = page
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the pageSize query parameter to the request.
         *
         * @param {!Number} [size=50] The number of items per page
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withPageSize(10);
         */
        withPageSize(size = 50) {
            this.parameters.pageSize = size
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the value query parameter to the request.
         *
         * @param {!String} value A data element or attribute identifier
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withValue('UXz7xuGCEhU');
         */
        withValue(value) {
            // must be a data element or attribute of numeric value type
            if (value) {
                this.parameters.value = value
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the sortOrder query parameter to the request.
         *
         * @param {!String} sortOrder The sortOrder value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withSortOrder('DESC');
         */
        withSortOrder(value) {
            const sortOrder = value.toUpperCase()

            const sortOrders = new Set(['ASC', 'DESC'])

            if (sortOrders.has(sortOrder)) {
                this.parameters.sortOrder = sortOrder
            } else {
                console.warn(
                    `d2.analytics.request.withSortOrder(): "${value}" not listed as possible value`
                )
                this.parameters.sortOrder = value
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the limit query parameter to the request.
         *
         * @param {!Number} limit The maximum number of records to return
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withLimit('5000');
         */
        withLimit(value) {
            if (value) {
                const limit = value > 10000 ? 10000 : value

                this.parameters.limit = limit
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the outputType query parameter to the request.
         *
         * @param {!String} outputType The output type
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withOutputType('ENROLLMENT');
         */
        withOutputType(value) {
            const type = value.toUpperCase()

            const outputTypes = new Set([
                'EVENT',
                'ENROLLMENT',
                'TRACKED_ENTITY_INSTANCE',
            ])

            if (outputTypes.has(type)) {
                this.parameters.outputType = type
            } else {
                console.warn(
                    `d2.analytics.request.withOutputType(): "${value}" not listed as possible value`
                )
                this.parameters.outputType = value
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the collapseDataDimensions query parameter to the request.
         *
         * @param {Boolean} [collapseDataDimensions=true] The collapseDataDimensions value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withCollapseDataDimensions();
         */
        withCollapseDataDimensions(flag = true) {
            this.parameters.collapseDataDimensions = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the skipRounding query parameter to the request.
         *
         * @param {Boolean} [skipRounding=true] The skipRounding value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withSkipRounding();
         */
        withSkipRounding(flag = true) {
            this.parameters.skipRounding = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the aggregateData query parameter to the request.
         *
         * @param {Boolean} [aggregateData=true] The aggregateData value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withAggregateData();
         */
        withAggregateData(flag = true) {
            this.parameters.aggregateData = flag
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the clusterSize query parameter to the request.
         *
         * @param {!Number} clusterSize The size of cluster in meters
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withClusterSize(1000);
         */
        withClusterSize(size) {
            if (size) {
                this.parameters.clusterSize = size
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the coordinateField query parameter to the request.
         *
         * @param {!String} [coordinateField=EVENT] The field to base geospatial event analytics on
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withCoordinateField('&lt;attribute-id>');
         */
        withCoordinateField(field = 'EVENT') {
            // EVENT, &lt;attribute-id>, &lt;dataelement-id>
            this.parameters.coordinateField = field
            return new AnalyticsRequest(this)
        }

        /**
         * Adds the bbox query parameter to the request.
         *
         * @param {!String} bbox The bounding box coordinates in the format "min lng, min lat, max lng, max lat"
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withBbox('11.1768827285209, 60.141691309755, 11.1694071634997, 60.287796722512');
         */
        withBbox(bbox) {
            if (bbox) {
                this.parameters.bbox = bbox
            }

            return new AnalyticsRequest(this)
        }

        /**
         * Adds the includeClusterPoints query parameter to the request.
         *
         * @param {Boolean} [includeClusterPoints=true] The includeClusterPoints value
         *
         * @returns {AnalyticsRequest} A new instance of the class for chaining purposes
         *
         * @example
         * const req = new d2.analytics.request()
         *    .withIncludeClusterPoints();
         */
        withIncludeClusterPoints(flag = true) {
            this.parameters.includeClusterPoints = flag
            return new AnalyticsRequest(this)
        }
    }

export default AnalyticsRequestPropertiesMixin
</code></pre>
        </article>
    </section>




    
    
</div>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.6</a> on Thu Nov 18 2021 08:51:53 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>

<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>


</body>
</html>