/* tslint:disable */ /* eslint-disable */ /** * Constant Contact API v3 * Swagger build version 3.0.2475 * * The version of the OpenAPI document: 1.0.116 * Contact: webservices@constantcontact.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import type { Configuration } from '../configuration'; import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios'; import globalAxios from 'axios'; // Some imports not used depending on template conditions // @ts-ignore import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common'; // @ts-ignore import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError, operationServerMap } from '../base'; // @ts-ignore import { GetContactOpenClickRateReport200Response } from '../models'; // @ts-ignore import { GetContactTrackingCountReport200Response } from '../models'; // @ts-ignore import { GetContactTrackingReport200Response } from '../models'; /** * ContactsReportingApi - axios parameter creator * @export */ export const ContactsReportingApiAxiosParamCreator = function (configuration?: Configuration) { return { /** *

Gets the average open and click rate for a given account and contact.

Looks at all tracking activities for bulk emails from a given contact over the given date range. Range cannot exceed 5 years.

Returns the rates and the number of campaign activities that were included in the calculation.

If no activities fall into the given date range, all rates will return 0 and the number of included activities will be 0.

* @summary GET Average Open and Click Rates * @param {string} contactId The contact id which is requesting tracking activity data (e.g. aa9ff7b0-478d-11e6-8059-00163e3c8e19) * @param {string} start The starting date, in ISO 8601 format, to use to get campaigns. For example: 2019-01-01T00:00:00-0500. * @param {string} end The ending date, in ISO 8601 format, to use to get campaigns. For example: 2019-12-01T00:00:00-0500. * @param {*} [options] Override http request option. * @throws {RequiredError} */ getContactOpenClickRateReport: async (contactId: string, start: string, end: string, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'contactId' is not null or undefined assertParamExists('getContactOpenClickRateReport', 'contactId', contactId) // verify required parameter 'start' is not null or undefined assertParamExists('getContactOpenClickRateReport', 'start', start) // verify required parameter 'end' is not null or undefined assertParamExists('getContactOpenClickRateReport', 'end', end) const localVarPath = `/reports/contact_reports/{contact_id}/open_and_click_rates` .replace(`{${"contact_id"}}`, encodeURIComponent(String(contactId))); // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; if (configuration) { baseOptions = configuration.baseOptions; } const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; // authentication oauth2_access_code required // oauth required await setOAuthToObject(localVarHeaderParameter, "oauth2_access_code", ["contact_data"], configuration) // authentication oauth2_implicit required // oauth required await setOAuthToObject(localVarHeaderParameter, "oauth2_implicit", ["contact_data"], configuration) if (start !== undefined) { localVarQueryParameter['start'] = start; } if (end !== undefined) { localVarQueryParameter['end'] = end; } setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; return { url: toPathString(localVarUrlObj), options: localVarRequestOptions, }; }, /** * Get a list of the recent emails (aka, campaign activities) sent to a specific contact and a summary of the actions the contact took on that email for the most recent 200 campaigns. * @summary GET Contact Action Summary * @param {string} contactId The contact id which is requesting tracking activity data (e.g. aa9ff7b0-478d-11e6-8059-00163e3c8e19) * @param {string} start The starting date, in ISO 8601 format, to use to get campaigns. For example: 2019-01-01T00:00:00-0500. * @param {string} end The ending date, in ISO 8601 format, to use to get campaigns. For example: 2019-12-01T00:00:00-0500. * @param {*} [options] Override http request option. * @throws {RequiredError} */ getContactTrackingCountReport: async (contactId: string, start: string, end: string, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'contactId' is not null or undefined assertParamExists('getContactTrackingCountReport', 'contactId', contactId) // verify required parameter 'start' is not null or undefined assertParamExists('getContactTrackingCountReport', 'start', start) // verify required parameter 'end' is not null or undefined assertParamExists('getContactTrackingCountReport', 'end', end) const localVarPath = `/reports/contact_reports/{contact_id}/activity_summary` .replace(`{${"contact_id"}}`, encodeURIComponent(String(contactId))); // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; if (configuration) { baseOptions = configuration.baseOptions; } const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; // authentication oauth2_access_code required // oauth required await setOAuthToObject(localVarHeaderParameter, "oauth2_access_code", ["contact_data"], configuration) // authentication oauth2_implicit required // oauth required await setOAuthToObject(localVarHeaderParameter, "oauth2_implicit", ["contact_data"], configuration) if (start !== undefined) { localVarQueryParameter['start'] = start; } if (end !== undefined) { localVarQueryParameter['end'] = end; } setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; return { url: toPathString(localVarUrlObj), options: localVarRequestOptions, }; }, /** *

Gets the tracking activity data for a single contact, sorted in descending activity date order.

You must chose either the `tracking_activities_list` query parameter and or the `tracking_activity_type` query parameter to specify one or more tracking activity types In the request. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive.

Valid tracking activity types
em_sendsSend activities
em_opensEmail open tracking activities
em_clicksLink click-through tracking activities
em_bouncesBounce tracking activities
em_optoutsOpt-out tracking activities
em_forwardsForward to a friend tracking activities
p_contact_openLanding page opens
p_contact_clickLanding page clicks
p_contact_addLanding page adds
p_contact_update Landing page updates
* @summary GET Contact Activity Details * @param {string} contactId The contact\'s ID for which tracking activity data is requested. * @param {Array} [trackingActivitiesList] Specify one or more tracking activity types to include as a comma-delimited string. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive. * @param {Array} [trackingActivityType] Specify one or more tracking activity types to include as an array. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive. * @param {boolean} [includeCampaignActivityNames] Default (`true`) returns campaign activity names in the results. Not including campaign activity names in the results (`false`), is more efficient. * @param {string} [limit] The number of tracking activities to return in a single page. Valid values are 1 to 100. Default is 100. * @param {*} [options] Override http request option. * @throws {RequiredError} */ getContactTrackingReport: async (contactId: string, trackingActivitiesList?: Array, trackingActivityType?: Array, includeCampaignActivityNames?: boolean, limit?: string, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'contactId' is not null or undefined assertParamExists('getContactTrackingReport', 'contactId', contactId) const localVarPath = `/reports/contact_reports/{contact_id}/activity_details` .replace(`{${"contact_id"}}`, encodeURIComponent(String(contactId))); // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; if (configuration) { baseOptions = configuration.baseOptions; } const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; const localVarHeaderParameter = {} as any; const localVarQueryParameter = {} as any; // authentication oauth2_access_code required // oauth required await setOAuthToObject(localVarHeaderParameter, "oauth2_access_code", ["contact_data"], configuration) // authentication oauth2_implicit required // oauth required await setOAuthToObject(localVarHeaderParameter, "oauth2_implicit", ["contact_data"], configuration) if (trackingActivitiesList) { localVarQueryParameter['tracking_activities_list'] = trackingActivitiesList; } if (trackingActivityType) { localVarQueryParameter['tracking_activity_type'] = trackingActivityType.join(COLLECTION_FORMATS.csv); } if (includeCampaignActivityNames !== undefined) { localVarQueryParameter['include_campaign_activity_names'] = includeCampaignActivityNames; } if (limit !== undefined) { localVarQueryParameter['limit'] = limit; } setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; return { url: toPathString(localVarUrlObj), options: localVarRequestOptions, }; }, } }; /** * ContactsReportingApi - functional programming interface * @export */ export const ContactsReportingApiFp = function(configuration?: Configuration) { const localVarAxiosParamCreator = ContactsReportingApiAxiosParamCreator(configuration) return { /** *

Gets the average open and click rate for a given account and contact.

Looks at all tracking activities for bulk emails from a given contact over the given date range. Range cannot exceed 5 years.

Returns the rates and the number of campaign activities that were included in the calculation.

If no activities fall into the given date range, all rates will return 0 and the number of included activities will be 0.

* @summary GET Average Open and Click Rates * @param {string} contactId The contact id which is requesting tracking activity data (e.g. aa9ff7b0-478d-11e6-8059-00163e3c8e19) * @param {string} start The starting date, in ISO 8601 format, to use to get campaigns. For example: 2019-01-01T00:00:00-0500. * @param {string} end The ending date, in ISO 8601 format, to use to get campaigns. For example: 2019-12-01T00:00:00-0500. * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getContactOpenClickRateReport(contactId: string, start: string, end: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getContactOpenClickRateReport(contactId, start, end, options); const index = configuration?.serverIndex ?? 0; const operationBasePath = operationServerMap['ContactsReportingApi.getContactOpenClickRateReport']?.[index]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); }, /** * Get a list of the recent emails (aka, campaign activities) sent to a specific contact and a summary of the actions the contact took on that email for the most recent 200 campaigns. * @summary GET Contact Action Summary * @param {string} contactId The contact id which is requesting tracking activity data (e.g. aa9ff7b0-478d-11e6-8059-00163e3c8e19) * @param {string} start The starting date, in ISO 8601 format, to use to get campaigns. For example: 2019-01-01T00:00:00-0500. * @param {string} end The ending date, in ISO 8601 format, to use to get campaigns. For example: 2019-12-01T00:00:00-0500. * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getContactTrackingCountReport(contactId: string, start: string, end: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getContactTrackingCountReport(contactId, start, end, options); const index = configuration?.serverIndex ?? 0; const operationBasePath = operationServerMap['ContactsReportingApi.getContactTrackingCountReport']?.[index]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); }, /** *

Gets the tracking activity data for a single contact, sorted in descending activity date order.

You must chose either the `tracking_activities_list` query parameter and or the `tracking_activity_type` query parameter to specify one or more tracking activity types In the request. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive.

Valid tracking activity types
em_sendsSend activities
em_opensEmail open tracking activities
em_clicksLink click-through tracking activities
em_bouncesBounce tracking activities
em_optoutsOpt-out tracking activities
em_forwardsForward to a friend tracking activities
p_contact_openLanding page opens
p_contact_clickLanding page clicks
p_contact_addLanding page adds
p_contact_update Landing page updates
* @summary GET Contact Activity Details * @param {string} contactId The contact\'s ID for which tracking activity data is requested. * @param {Array} [trackingActivitiesList] Specify one or more tracking activity types to include as a comma-delimited string. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive. * @param {Array} [trackingActivityType] Specify one or more tracking activity types to include as an array. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive. * @param {boolean} [includeCampaignActivityNames] Default (`true`) returns campaign activity names in the results. Not including campaign activity names in the results (`false`), is more efficient. * @param {string} [limit] The number of tracking activities to return in a single page. Valid values are 1 to 100. Default is 100. * @param {*} [options] Override http request option. * @throws {RequiredError} */ async getContactTrackingReport(contactId: string, trackingActivitiesList?: Array, trackingActivityType?: Array, includeCampaignActivityNames?: boolean, limit?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getContactTrackingReport(contactId, trackingActivitiesList, trackingActivityType, includeCampaignActivityNames, limit, options); const index = configuration?.serverIndex ?? 0; const operationBasePath = operationServerMap['ContactsReportingApi.getContactTrackingReport']?.[index]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath); }, } }; /** * ContactsReportingApi - factory interface * @export */ export const ContactsReportingApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { const localVarFp = ContactsReportingApiFp(configuration) return { /** *

Gets the average open and click rate for a given account and contact.

Looks at all tracking activities for bulk emails from a given contact over the given date range. Range cannot exceed 5 years.

Returns the rates and the number of campaign activities that were included in the calculation.

If no activities fall into the given date range, all rates will return 0 and the number of included activities will be 0.

* @summary GET Average Open and Click Rates * @param {string} contactId The contact id which is requesting tracking activity data (e.g. aa9ff7b0-478d-11e6-8059-00163e3c8e19) * @param {string} start The starting date, in ISO 8601 format, to use to get campaigns. For example: 2019-01-01T00:00:00-0500. * @param {string} end The ending date, in ISO 8601 format, to use to get campaigns. For example: 2019-12-01T00:00:00-0500. * @param {*} [options] Override http request option. * @throws {RequiredError} */ getContactOpenClickRateReport(contactId: string, start: string, end: string, options?: any): AxiosPromise { return localVarFp.getContactOpenClickRateReport(contactId, start, end, options).then((request) => request(axios, basePath)); }, /** * Get a list of the recent emails (aka, campaign activities) sent to a specific contact and a summary of the actions the contact took on that email for the most recent 200 campaigns. * @summary GET Contact Action Summary * @param {string} contactId The contact id which is requesting tracking activity data (e.g. aa9ff7b0-478d-11e6-8059-00163e3c8e19) * @param {string} start The starting date, in ISO 8601 format, to use to get campaigns. For example: 2019-01-01T00:00:00-0500. * @param {string} end The ending date, in ISO 8601 format, to use to get campaigns. For example: 2019-12-01T00:00:00-0500. * @param {*} [options] Override http request option. * @throws {RequiredError} */ getContactTrackingCountReport(contactId: string, start: string, end: string, options?: any): AxiosPromise { return localVarFp.getContactTrackingCountReport(contactId, start, end, options).then((request) => request(axios, basePath)); }, /** *

Gets the tracking activity data for a single contact, sorted in descending activity date order.

You must chose either the `tracking_activities_list` query parameter and or the `tracking_activity_type` query parameter to specify one or more tracking activity types In the request. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive.

Valid tracking activity types
em_sendsSend activities
em_opensEmail open tracking activities
em_clicksLink click-through tracking activities
em_bouncesBounce tracking activities
em_optoutsOpt-out tracking activities
em_forwardsForward to a friend tracking activities
p_contact_openLanding page opens
p_contact_clickLanding page clicks
p_contact_addLanding page adds
p_contact_update Landing page updates
* @summary GET Contact Activity Details * @param {string} contactId The contact\'s ID for which tracking activity data is requested. * @param {Array} [trackingActivitiesList] Specify one or more tracking activity types to include as a comma-delimited string. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive. * @param {Array} [trackingActivityType] Specify one or more tracking activity types to include as an array. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive. * @param {boolean} [includeCampaignActivityNames] Default (`true`) returns campaign activity names in the results. Not including campaign activity names in the results (`false`), is more efficient. * @param {string} [limit] The number of tracking activities to return in a single page. Valid values are 1 to 100. Default is 100. * @param {*} [options] Override http request option. * @throws {RequiredError} */ getContactTrackingReport(contactId: string, trackingActivitiesList?: Array, trackingActivityType?: Array, includeCampaignActivityNames?: boolean, limit?: string, options?: any): AxiosPromise { return localVarFp.getContactTrackingReport(contactId, trackingActivitiesList, trackingActivityType, includeCampaignActivityNames, limit, options).then((request) => request(axios, basePath)); }, }; }; /** * ContactsReportingApi - object-oriented interface * @export * @class ContactsReportingApi * @extends {BaseAPI} */ export class ContactsReportingApi extends BaseAPI { /** *

Gets the average open and click rate for a given account and contact.

Looks at all tracking activities for bulk emails from a given contact over the given date range. Range cannot exceed 5 years.

Returns the rates and the number of campaign activities that were included in the calculation.

If no activities fall into the given date range, all rates will return 0 and the number of included activities will be 0.

* @summary GET Average Open and Click Rates * @param {string} contactId The contact id which is requesting tracking activity data (e.g. aa9ff7b0-478d-11e6-8059-00163e3c8e19) * @param {string} start The starting date, in ISO 8601 format, to use to get campaigns. For example: 2019-01-01T00:00:00-0500. * @param {string} end The ending date, in ISO 8601 format, to use to get campaigns. For example: 2019-12-01T00:00:00-0500. * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof ContactsReportingApi */ public getContactOpenClickRateReport(contactId: string, start: string, end: string, options?: RawAxiosRequestConfig) { return ContactsReportingApiFp(this.configuration).getContactOpenClickRateReport(contactId, start, end, options).then((request) => request(this.axios, this.basePath)); } /** * Get a list of the recent emails (aka, campaign activities) sent to a specific contact and a summary of the actions the contact took on that email for the most recent 200 campaigns. * @summary GET Contact Action Summary * @param {string} contactId The contact id which is requesting tracking activity data (e.g. aa9ff7b0-478d-11e6-8059-00163e3c8e19) * @param {string} start The starting date, in ISO 8601 format, to use to get campaigns. For example: 2019-01-01T00:00:00-0500. * @param {string} end The ending date, in ISO 8601 format, to use to get campaigns. For example: 2019-12-01T00:00:00-0500. * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof ContactsReportingApi */ public getContactTrackingCountReport(contactId: string, start: string, end: string, options?: RawAxiosRequestConfig) { return ContactsReportingApiFp(this.configuration).getContactTrackingCountReport(contactId, start, end, options).then((request) => request(this.axios, this.basePath)); } /** *

Gets the tracking activity data for a single contact, sorted in descending activity date order.

You must chose either the `tracking_activities_list` query parameter and or the `tracking_activity_type` query parameter to specify one or more tracking activity types In the request. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive.

Valid tracking activity types
em_sendsSend activities
em_opensEmail open tracking activities
em_clicksLink click-through tracking activities
em_bouncesBounce tracking activities
em_optoutsOpt-out tracking activities
em_forwardsForward to a friend tracking activities
p_contact_openLanding page opens
p_contact_clickLanding page clicks
p_contact_addLanding page adds
p_contact_update Landing page updates
* @summary GET Contact Activity Details * @param {string} contactId The contact\'s ID for which tracking activity data is requested. * @param {Array} [trackingActivitiesList] Specify one or more tracking activity types to include as a comma-delimited string. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive. * @param {Array} [trackingActivityType] Specify one or more tracking activity types to include as an array. The `tracking_activities_list` and `tracking_activities_type` query parameters are mutually exclusive. * @param {boolean} [includeCampaignActivityNames] Default (`true`) returns campaign activity names in the results. Not including campaign activity names in the results (`false`), is more efficient. * @param {string} [limit] The number of tracking activities to return in a single page. Valid values are 1 to 100. Default is 100. * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof ContactsReportingApi */ public getContactTrackingReport(contactId: string, trackingActivitiesList?: Array, trackingActivityType?: Array, includeCampaignActivityNames?: boolean, limit?: string, options?: RawAxiosRequestConfig) { return ContactsReportingApiFp(this.configuration).getContactTrackingReport(contactId, trackingActivitiesList, trackingActivityType, includeCampaignActivityNames, limit, options).then((request) => request(this.axios, this.basePath)); } } /** * @export */ export const GetContactTrackingReportTrackingActivitiesListEnum = { EmSends: 'em_sends', EmOpens: 'em_opens', EmClicks: 'em_clicks', EmBounces: 'em_bounces', EmOptouts: 'em_optouts', EmForwards: 'em_forwards', PContactOpen: 'p_contact_open', PContactClick: 'p_contact_click', PContactAdd: 'p_contact_add', PContactUpdate: 'p_contact_update' } as const; export type GetContactTrackingReportTrackingActivitiesListEnum = typeof GetContactTrackingReportTrackingActivitiesListEnum[keyof typeof GetContactTrackingReportTrackingActivitiesListEnum];