zuora to eloqua | eloqua import blueprints | test eloqua existing import | Search

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.

Run example

npm run import -- "eloqua existing 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
};

What the code could have been:

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:

  1. Imports:

  2. getCustomDataObject Function:

  3. getImportDefinitions Function:

  4. Exports:

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.