Created
December 1, 2016 16:37
-
-
Save leandrojo/e6c48a64290f43c436cd8b09439d4e4c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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