40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
const rp = require('request-promise-native');
|
|
|
|
module.exports = async function (context) {
|
|
const stringBody = JSON.stringify(context.request.body);
|
|
const body = JSON.parse(stringBody);
|
|
const location = body.location;
|
|
|
|
if (!location) {
|
|
return {
|
|
status: 400,
|
|
body: {
|
|
text: 'You must provide a location.'
|
|
}
|
|
};
|
|
}
|
|
|
|
try {
|
|
const response = await rp(`https://query.yahooapis.com/v1/public/yql?q=select item.condition from weather.forecast where woeid in (select woeid from geo.places(1) where text="${location}") and u="c"&format=json`);
|
|
const condition = JSON.parse(response).query.results.channel.item.condition;
|
|
const text = condition.text;
|
|
const temperature = condition.temp;
|
|
return {
|
|
status: 200,
|
|
body: {
|
|
text: `It is ${temperature} celsius degrees in ${location} and ${text}`
|
|
},
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
}
|
|
};
|
|
} catch (e) {
|
|
console.error(e);
|
|
return {
|
|
status: 500,
|
|
body: e
|
|
};
|
|
}
|
|
} |