src/apis/api.event.js
import {RequestHandler} from '../request/handler';
/**
* Ingresse Event API
*/
export class ApiEvents extends RequestHandler {
/**
* Identify event
*
* @param {string} link - Link/Slug or id.
* @param {string} fields - Event fields to get.
* @param {object} [queryOpt] - Optional request parameters.
* @returns {Promise}
*/
identifyEvent(link, fields, queryOpt) {
let query = queryOpt || {
link : link,
fields: fields,
method: 'identify',
};
return this.get('/event', query);
}
/**
* Get event
*
* @param {string|number} id - The event ID to get.
* @param {object} [query] - Optional request parameters.
* @returns {Promise}
*/
getEvent(id, query = {}) {
return this.get(`/event/${id}`, query);
}
/**
* Get event tickets
*
* @param {string|number} id - The event ID to get.
* @param {object} [query] - Optional request parameters.
* @returns {Promise}
*/
getEventTickets(id, query = {}) {
return this.get(`/event/${id}/tickets`, query);
}
/**
* Get event session tickets
*
* @param {string|number} id - The event ID to get.
* @param {string|number} sessionId - The event session ID to get.
* @param {object} [query] - Optional request parameters.
* @returns {Promise}
*/
getEventSessionTickets(id, sessionId, query = {}) {
return this.get(`/event/${id}/session/${sessionId}/tickets`, query);
}
/**
* Get event crew
*
* @param {string|number} id - The event ID to get.
* @param {object} [query] - Optional request parameters.
* @returns {Promise}
*/
getEventCrew(id, query = {}) {
return this.get(`/event/${id}/crew`, query);
}
/**
* Get event attributes
*
* @param {string|number} id - The event ID to get.
* @param {object} [query] - Optional request parameters.
* @returns {Promise}
*/
getEventAttributes(id, query = {}) {
return this.get(`/event/${id}/attributes`, query);
}
/**
* Featured events
*
* @param {object} [query] - Optional request parameters.
*
* @returns {Promise}
*
* @example
*
* ENDPOINT: '/featured'
*
* ...
*
* ingresse.ApiEvents.getFeatured({ method: 'banner', state: 'sp' })
* .then(function (response) {
* console.log(response);
* })
* .catch(function (error) {
* console.log(error);
* });
*/
getFeatured(query = {}) {
return this.get('/featured', query);
}
/**
* Get Home Sections
*
* @param {object} [query] - Optional request parameters.
*
* @returns {Promise}
*
* @example
*
* ENDPOINT: '/home/sections'
*
* ...
*
* ingresse.ApiEvents.getHomeSections()
* .then(function (response) {
* console.log(response);
* })
* .catch(function (error) {
* console.log(error);
* });
*/
getHomeSections(query = {}) {
return this.get('/home/sections', query);
}
/**
* Deprecated
*/
getEventTypes(query = {}) {
return this.get('/home/sections', query);
}
/**
* Home Cover
*
* @param {object} [query] - Optional request parameters.
*
* @returns {Promise}
*
* @example
*
* ENDPOINT: '/home/cover'
*
* ...
*
* ingresse.ApiEvents.getHomeCover()
* .then(function (response) {
* console.log(response);
* })
* .catch(function (error) {
* console.log(error);
* });
*/
getHomeCover(query = {}) {
return this.get('/home/cover', query);
}
/**
* Get the search event categorie.
*
* @param {string} category - The search category to get.
* @param {object} [query] - Optional request parameters.
* @returns {Promise}
*/
getEventCategories(category, query = {}) {
return this.get(`/${category}`, query);
}
/**
* Request the passkeys report processment.
*
* Will request to API generate the Passkeys Report
* and API will send an email to the user when the report
* is available, with the link to download file.
*
* @param {number} eventId - The event ID.
* @param {object} data - Report requisition details.
* @param {object} [query] - Optional request parameters.
*
* @returns {Promise}
*
* @example
* ...
* const ing = new Sdk();
*
* ing.api.requestPasskeysReport(21232, {
* "type": "passkey",
* "format": "xlsx",
* "filters": [{
* "status": "approved"
* }]
* })
* .then((response) => {
* console.log(response);
* })
* .catch((error) => {
* console.log(error);
* });
*/
requestPasskeysReport(eventId, data = {}, query = {}) {
let _data = Object.assign({
type : 'passkey',
format : 'csv',
filters: [
{
status: 'approved',
},
],
}, data);
return this.post(`/event/${eventId}/export`, _data, query);
}
/**
* Request export list processment.
*
* Will request to API generate an List
* and API will send an email to the user when the list
* is available, with the link to download file.
*
* @param {number} eventId - The event ID.
* @param {object} data - Report requisition details.
* @param {object} [query] - Optional request parameters.
* @param {array} [query.filters]
* @param {string} [query.format] - 'csv' or 'xlsx'. Default: 'csv'.
* @param {string} [query.type] - 'guestlist', 'passkey' or 'transactions'. Default: 'transactions'
*
* @returns {Promise}
*
* @example
* ...
* const ing = new Sdk();
*
* ing.api.requestExportList(21232, {
* "type": "guestlist",
* "format": "xlsx",
* "filters": [
* {
* "name" : "channel",
* "value": "offline",
* },
* {
* "name" : "term",
* "value": "udi",
* }
* ]
* })
* .then((response) => {
* console.log(response);
* })
* .catch((error) => {
* console.log(error);
* });
*/
requestExportList(eventId, data = {}, query = {}) {
let _data = Object.assign({
type : 'transactions',
format: 'csv',
}, data);
return this.post(`/event/${eventId}/export`, _data, query);
}
/**
* Get Event Entry Report
*
* @param {number} eventId - The event ID.
* @param {number} [sessionId] - The event session ID to get.
* @param {object} [query] - Optional request parameters.
*
* @returns {Promise}
*/
getEntryReport(eventId, sessionId, query = {}) {
const _query = Object.assign(
{},
query,
{
method: 'report'
},
(!sessionId ? {} : {
sessionId: sessionId
})
);
return this.get(`/event/${eventId}/guestlist`, _query);
}
/**
* Get Event Bordero Report
*
* @param {number} eventId - The event ID.
* @param {object} [query] - Optional request parameters.
*
* @returns {Promise}
*/
getBorderoReport(eventId, query = {}) {
return this.get(`/event/${eventId}/bordero`, query);
}
}