Merge pull request #28 from oceanprotocol/feature/meetup

meetup task
This commit is contained in:
Matthias Kretschmann 2019-08-07 16:59:01 +02:00 committed by GitHub
commit 4a9355bed3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 84 additions and 6 deletions

View File

@ -16,6 +16,8 @@
- [Get Categories](#get-categories)
- [YouTube](#youtube)
- [MailChimp](#mailchimp)
- [Meetup](#meetup)
- [`GET /`](#get-)
- [Zoho](#zoho)
- [Campaigns API](#campaigns-api)
- [CRM API](#crm-api)
@ -177,6 +179,32 @@ All errors from MailChimp (when `"status"` is a number) are simply passed throug
}
```
### Meetup
**`webtask-meetup.js`**: Task to get information from Meetup.
#### `GET /`
```bash
http://localhost:8080/meetup
# when published on webtask.io
https://TASK_URL/TASK_NAME/meetup
```
**Response**
Field `groups` holds passed through array of objects with all groups. See https://www.meetup.com/meetup_api/docs/pro/:urlname/groups/
```json
{
"groups": [{
...
}],
"members": 40238
}
```
### Zoho
**`webtask-zoho.js`**: Generic task to subscribe users into lists on Zoho Campaigns & Zoho CRM.

View File

@ -3,15 +3,14 @@
"version": "0.1.0",
"private": true,
"scripts": {
"start": "wt serve webtask-medium.js",
"start": "wt serve webtask-meetup.js",
"test": "eslint ./*.js"
},
"dependencies": {
"axios": "^0.19.0",
"body-parser": "^1.18.3",
"cors": "^2.8.4",
"express": "^4.16.4",
"ms": "^2.1.1",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"express": "^4.17.1",
"ms": "^2.1.2",
"request": "^2.88.0",
"webtask-tools": "^3.4.0"
},

51
webtask-meetup.js Normal file
View File

@ -0,0 +1,51 @@
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)