Skip to content

Instantly share code, notes, and snippets.

@leandrojo
Created December 1, 2016 16:37
Show Gist options
  • Select an option

  • Save leandrojo/e6c48a64290f43c436cd8b09439d4e4c to your computer and use it in GitHub Desktop.

Select an option

Save leandrojo/e6c48a64290f43c436cd8b09439d4e4c to your computer and use it in GitHub Desktop.
const request = require('request-promise');
const parseString = require('xml2js').parseString;
const q = require('q');
const _ = require('underscore');
const moment = require('moment');
// Em algum framework com funcionamento por middleware onde
// hook oferece informações da requisição.
const find = function (hook) {
const defered = q.defer();
const destinationId = hook.params.query.destinationId;
const CheckIn = moment(new Date()).add(2, 'days').format('YYYYMMDD');
const CheckOut = moment(new Date()).add(4, 'days').format('YYYYMMDD');
const uri = 'https://testxml.e-tsw.com/AffiliateService/AffiliateService.svc/restful/GetQuoteHotels';
const params = {
a: 'AF-TTNR', //--> Codigo do associado.
ip: '179.180.107.171', //--> IP do visitante.
c: 'PE', //--> Codigo de Moeda.
sd: CheckIn,
ed: CheckOut,
h: null, //--> HotelId, caso em branco pesquisa em todos os destinos.
rt: null, //--> Tipo de quarto.
mp: null, //--> Meal code type.
r: 1, //--> Numero de quartos.
r1a: 2, //--> Numero de adultos no quarto.
r1k: 0, //--> Numero de criancas no quarto.
r1k1a: 0, //--> Idade da crianca.
r1k2a: 0, //--> Idade da crianca.
r1k3a: 0, //--> Idade da crianca.
d: destinationId, //--> Código de destino.
l: 'esp', //--> Código da linguagem de retorno.
};
request
.get({
uri: uri,
qs: params,
})
.then((res) => {
return parseString(res, {
explicitArray: false
}, (err, str) => {
if(str.QuoteHotels.Hotels) {
hook.result = str.QuoteHotels.Hotels.Hotel.splice(0, 10);
} else {
hook.result = str.QuoteHotels.Error;
}
defered.resolve(hook);
});
});
// Nesse mecanismo o metodo deve retornar uma promise.
return defered.promise;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment