methods/getUrlRedirections.js

import { buildRequestUrlPath, buildAuthHeader } from '../utils'

/**
 * Gets the details of a gallery by their Gallery ID.
 * @memberof AgilityFetch.Client.Pages
 * @param {Object} requestParams - The parameters for the API request.
 * @param {Date} [requestParams.lastAccessDate] - A Date object representing the last access date and time for the URL Redirections list.  This value should be pulled from a previous request.
 * @returns {Promise<AgilityFetch.Types.Gallery>} - Returns a gallery object.
 * @example
 *
 * import agility from '@agility/content-fetch'
 *
 * const api = agility.getApi({
 *   guid: 'ade6cf3c',
 *   apiKey: 'defaultlive.201ffdd0841cacad5bb647e76547e918b0c9ecdb8b5ddb3cf92e9a79b03623cb',
 * });
 *
 * let dateObj = null;
 *
 * api.getUrlRedirections({
 *     lastAccessDate: dateObj
 * })
 * .then(function({urlRedirections, lastAccessDate}) {
 *     console.log(urlRedirections.length, lastAccessDate);
 * })
 * .catch(function(error) {
 *     console.log(error);
 * });
 *
*/
function getUrlRedirections(requestParams) {

	validateRequestParams(requestParams);

	let url = "";
	if (requestParams.lastAccessDate) {

		if (! requestParams.lastAccessDate.toISOString) {
			requestParams.lastAccessDate = new Date(requestParams.lastAccessDate);
		}

		url = `/?lastAccessDate=${requestParams.lastAccessDate.toISOString()}`
	}


	const req = {
		url: url,
		method: 'get',
		baseURL: buildRequestUrlPath(this.config, 'urlredirection'),
		headers: buildAuthHeader(this.config),
		params: {}
	};

	const self = this;
	let promise = new Promise(function (resolve, reject) {

		self.makeRequest(req)
			.then(data => {

				if (data == undefined || ! data)  {
					reject(new Error("The URL redirections could not be retrieved."));
				} else {
					resolve(data);
				}
			})
			.catch(error => {
				reject(error);
			}
		);
	});
	return promise;
}

function validateRequestParams(requestParams) {

	if (requestParams.lastAccessDate) {

		if (! requestParams.lastAccessDate.toISOString) {
			let dt = new Date(requestParams.lastAccessDate);

			if (isNaN(dt)) {
				throw new TypeError('You must include a valid Datetime for the lastAccessDate.');
			}
		}
	} else {
		return;
	}
}


export default getUrlRedirections;