n8n-nodes-tripadvisor
Version:
Tripadvisor custom node for n8n
121 lines • 6.38 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Tripadvisor = void 0;
const resources_1 = require("./resources");
class Tripadvisor {
constructor() {
this.description = {
displayName: 'Tripadvisor',
name: 'tripadvisor',
icon: 'file:tripadvisor.svg',
group: ['Miscellaneous'],
subtitle: '={{$parameter["resource"]}}',
version: 1,
description: 'Tripadvisor custom node for n8n',
defaults: {
name: 'Tripadvisor',
},
inputs: ['main'],
outputs: ['main'],
credentials: [
{
name: 'tripadvisorApi',
required: true,
},
],
properties: [
{
displayName: 'Resource',
name: 'resource',
type: 'options',
noDataExpression: true,
options: [
{
name: 'Location Detail',
value: 'locationDetails',
},
{
name: 'Location Photo',
value: 'locationPhotos',
},
{
name: 'Location Review',
value: 'locationReviews',
},
{
name: 'Location Search',
value: 'locationSearch',
},
{
name: 'Nearby Location Search',
value: 'nearbyLocationSearch',
},
],
default: 'locationDetails',
},
...resources_1.locationDetailsFields,
...resources_1.locationPhotosFields,
...resources_1.locationReviewsFields,
...resources_1.locationSearchFields,
...resources_1.nearbyLocationSearchFields,
],
};
}
async execute() {
const resource = this.getNodeParameter('resource', 0);
const credentials = await this.getCredentials('tripadvisorApi');
const apiKey = (await credentials).apiKey;
let responseData;
switch (resource) {
case 'locationDetails':
const locationIdDetails = this.getNodeParameter('locationId', 0);
const languageDetails = this.getNodeParameter('additionalFields.language', 0, '');
const currencyDetails = this.getNodeParameter('additionalFields.currency', 0, '');
responseData = await (0, resources_1.getLocationDetails)(locationIdDetails, apiKey, languageDetails, currencyDetails);
break;
case 'locationPhotos':
const locationIdPhotos = this.getNodeParameter('locationId', 0);
const languagePhotos = this.getNodeParameter('additionalFields.language', 0, '');
const limitPhotos = this.getNodeParameter('additionalFields.limit', 0, '');
const offsetPhotos = this.getNodeParameter('additionalFields.offset', 0, '');
const sourcePhotos = this.getNodeParameter('additionalFields.source', 0, '');
responseData = await (0, resources_1.getLocationPhotos)(locationIdPhotos, apiKey, languagePhotos, limitPhotos, offsetPhotos, sourcePhotos);
break;
case 'locationReviews':
const locationIdReviews = this.getNodeParameter('locationId', 0);
const languageReviews = this.getNodeParameter('additionalFields.language', 0, '');
const limitReviews = this.getNodeParameter('additionalFields.limit', 0, '');
const offsetReviews = this.getNodeParameter('additionalFields.offset', 0, '');
responseData = await (0, resources_1.getLocationReviews)(locationIdReviews, apiKey, languageReviews, limitReviews, offsetReviews);
break;
case 'locationSearch':
const searchQuerySearch = this.getNodeParameter('searchQuery', 0);
const categorySearch = this.getNodeParameter('additionalFields.category', 0, '');
const phoneSearch = this.getNodeParameter('additionalFields.phone', 0, '');
const addressSearch = this.getNodeParameter('additionalFields.address', 0, '');
const latLongSearch = this.getNodeParameter('additionalFields.latLong', 0, '');
const radiusSearch = this.getNodeParameter('additionalFields.radius', 0, '');
const radiusUnitSearch = this.getNodeParameter('additionalFields.radiusUnit', 0, '');
const languageSearch = this.getNodeParameter('additionalFields.language', 0, '');
responseData = await (0, resources_1.getLocationSearch)(searchQuerySearch, apiKey, categorySearch, phoneSearch, addressSearch, latLongSearch, radiusSearch, radiusUnitSearch, languageSearch);
break;
case 'nearbyLocationSearch':
const latLongNearby = this.getNodeParameter('latLong', 0);
const categoryNearby = this.getNodeParameter('additionalFields.category', 0, '');
const phoneNearby = this.getNodeParameter('additionalFields.phone', 0, '');
const addressNearby = this.getNodeParameter('additionalFields.address', 0, '');
const radiusNearby = this.getNodeParameter('additionalFields.radius', 0, '');
const radiusUnitNearby = this.getNodeParameter('additionalFields.radiusUnit', 0, '');
const languageNearby = this.getNodeParameter('additionalFields.language', 0, '');
responseData = await (0, resources_1.getNearbyLocationSearch)(latLongNearby, apiKey, categoryNearby, phoneNearby, addressNearby, radiusNearby, radiusUnitNearby, languageNearby);
break;
}
return this.prepareOutputData([
{
json: responseData,
},
]);
}
}
exports.Tripadvisor = Tripadvisor;
//# sourceMappingURL=Tripadvisor.node.js.map