-
Notifications
You must be signed in to change notification settings - Fork 0
/
handler.js
58 lines (56 loc) · 1.72 KB
/
handler.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
const axios = require('axios');
const db = require('../../database/index');
const twitchConfig = process.env.TWITCH_CLIENT_ID || require('./config/config')['Client-ID'];
exports.handler = async (event, ctx, cb) => {
if (event.httpMethod !== 'GET') {
cb('ERROR! METHOD NOT ACCEPTED', null);
} else {
try {
const data0 = await axios.get('https://api.twitch.tv/kraken/clips/top', {
headers: {
'Client-ID': twitchConfig,
Accept: 'application/vnd.twitchtv.v5+json',
},
params: {
limit: 100,
period: 'day',
},
});
const data1 = await axios.get('https://api.twitch.tv/kraken/clips/top', {
headers: {
'Client-ID': twitchConfig,
Accept: 'application/vnd.twitchtv.v5+json',
},
params: {
limit: 100,
period: 'week',
},
});
const data2 = await axios.get('https://api.twitch.tv/kraken/clips/top', {
headers: {
'Client-ID': twitchConfig,
Accept: 'application/vnd.twitchtv.v5+json',
},
params: {
limit: 100,
period: 'month',
},
});
const data3 = await axios.get('https://api.twitch.tv/kraken/clips/top', {
headers: {
'Client-ID': twitchConfig,
Accept: 'application/vnd.twitchtv.v5+json',
},
params: {
limit: 100,
period: 'all',
},
});
const data = data0.data.clips.concat(data1.data.clips.concat(data2.data.clips.concat(data3.data.clips)));
data.forEach(item => db.insertClip(item));
cb(null, { statusCode: 200, body: JSON.stringify(data) });
} catch (error) {
console.error(error);
}
}
};