mirror of
https://github.com/oceanprotocol/webtasks
synced 2025-01-08 21:04:03 +01:00
52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
|
const express = require('express')
|
||
|
const Webtask = require('webtask-tools')
|
||
|
const cors = require('cors')
|
||
|
const bodyParser = require('body-parser')
|
||
|
const request = require('request')
|
||
|
|
||
|
const server = express()
|
||
|
|
||
|
server.listen(4430)
|
||
|
server.use(bodyParser.json())
|
||
|
|
||
|
//
|
||
|
// Allow requests from these domains only
|
||
|
//
|
||
|
const corsOptions = {
|
||
|
origin: ['https://oceanprotocol.com', /\.oceanprotocol\.com$/],
|
||
|
optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204
|
||
|
}
|
||
|
|
||
|
server.use(cors(corsOptions))
|
||
|
|
||
|
const baseUrl = 'https://api.meetup.com'
|
||
|
|
||
|
server.get('/', (req, res) => {
|
||
|
const { MEETUP_API_KEY } = req.webtaskContext.secrets
|
||
|
|
||
|
const options = {
|
||
|
url: `${baseUrl}/pro/data-economy/groups?key=${MEETUP_API_KEY}`
|
||
|
}
|
||
|
|
||
|
try {
|
||
|
request.get(options, (error, response, body) => {
|
||
|
if (error || response.statusCode !== 200) res.send(error)
|
||
|
|
||
|
const data = JSON.parse(body)
|
||
|
let members = []
|
||
|
|
||
|
for (const item of data) {
|
||
|
members.push(item.member_count)
|
||
|
}
|
||
|
|
||
|
members = members.reduce((a, b) => a + b, 0)
|
||
|
res.send({ groups: data, members })
|
||
|
})
|
||
|
} catch (error) {
|
||
|
console.log(error)
|
||
|
res.send(error)
|
||
|
}
|
||
|
})
|
||
|
|
||
|
module.exports = Webtask.fromExpress(server)
|