This code provides functions to retrieve a specific custom data object and its corresponding import definition from the Eloqua API, likely for managing renewal-related data imports.
npm run import -- "eloqua existing import"
var importer = require('../Core');
var request = importer.import("http request polyfill");
var eloquaImport = importer.import("eloqua import service");
var { bulkImportTemplate } = importer.import("eloqua create template");
function getCustomDataObject(eloquaToken, eloquaConfig) {
return request.request({
followAllRedirects: true,
uri: eloquaConfig.rest_api_url + '/bulk/2.0/customobjects', // /60/fields',
method: 'GET',
headers: eloquaImport.eloquaRequestHeaders(eloquaToken)
})
.then(r => r.body.items.filter(i => i.name === 'AUT - NA Renewals')[0])
}
function getImportDefinitions(uri, eloquaToken, eloquaConfig) {
return request.request({
followAllRedirects: true,
uri: eloquaConfig.rest_api_url + '/bulk/2.0' + uri + '/imports',
method: 'GET',
headers: eloquaImport.eloquaRequestHeaders(eloquaToken)
})
.then(r => r.body.items.filter(i => i.name === bulkImportTemplate(0).name)[0])
}
module.exports = {
getCustomDataObject,
getImportDefinitions
};
const { createClient } = require('http-request-polyfill');
const { EloquentImport } = require('./Core');
const { BulkImportTemplate } = require('./BulkImportTemplate');
class LlamaService {
constructor(eloquaImport, bulkImportTemplate, httpclient = createClient()) {
this.eloquaImport = eloquaImport;
this.bulkImportTemplate = bulkImportTemplate;
this.httpClient = httpclient;
}
async getCustomDataObject(eloquaToken, eloquaConfig) {
/**
* Retrieves the custom data object 'AUT - NA Renewals' from Eloqua.
*
* @param {string} eloquaToken - Eloqua API token.
* @param {object} eloquaConfig - Eloqua API configuration.
* @returns {object} The custom data object.
*/
const response = await this.httpClient.get({
uri: `${eloquaConfig.rest_api_url}/bulk/2.0/customobjects`,
followAllRedirects: true,
headers: this.eloquaImport.eloquaRequestHeaders(eloquaToken)
});
const customDataObject = response.body.items.find(item => item.name === 'AUT - NA Renewals');
return customDataObject || {};
}
async getImportDefinitions(uri, eloquaToken, eloquaConfig) {
/**
* Retrieves the import definition for the bulk import template.
*
* @param {string} uri - The specific import definition URI.
* @param {string} eloquaToken - Eloqua API token.
* @param {object} eloquaConfig - Eloqua API configuration.
* @returns {object} The import definition.
*/
const response = await this.httpClient.get({
uri: `${eloquaConfig.rest_api_url}/bulk/2.0${uri}/imports`,
followAllRedirects: true,
headers: this.eloquaImport.eloquaRequestHeaders(eloquaToken)
});
const importDefinition = response.body.items.find(item => item.name === this.bulkImportTemplate(0).name);
return importDefinition || {};
}
}
const eloquaImport = new EloquentImport();
const bulkImportTemplate = new BulkImportTemplate();
const httpclient = createClient();
const llamaService = new LlamaService(eloquaImport, bulkImportTemplate, httpclient);
module.exports = {
getCustomDataObject: llamaService.getCustomDataObject.bind(llamaService),
getImportDefinitions: llamaService.getImportDefinitions.bind(llamaService)
};
This code defines two functions for interacting with the Eloqua API to manage custom data objects and import definitions.
Here's a breakdown:
Imports:
importer
: A module likely providing utilities for importing other modules.http request polyfill
: A library for making HTTP requests.eloqua import service
: A module with Eloqua-specific import functionality.eloqua create template
: A module containing a function bulkImportTemplate
used for generating import templates.getCustomDataObject
Function:
eloquaToken
and eloquaConfig
as input.getImportDefinitions
Function:
uri
, eloquaToken
, and eloquaConfig
as input.bulkImportTemplate(0)
.Exports:
getCustomDataObject
and getImportDefinitions
functions, making them available for use in other parts of the application.In essence, this code provides functions to retrieve specific custom data objects and import definitions from the Eloqua API, likely used for managing data imports related to renewals.