forked from thibauts/node-castv2-client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdal.js
96 lines (85 loc) · 2.39 KB
/
dal.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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
const axios = require('axios');
/**
* CONFIG
*/
const token = '423f9bb635a54a653c198b64e40a30b633e10bc4';
const url_base = 'https://dev-api.classpass.com';
const videos_url_base = 'https://development-platform-videos-api.classpass.com';
const leaderboard_url_base = 'https://development-platform-leaderboard.classpass.com';
const headers = {
'CP-Authorization': `Token ${token}`,
'Content-Type': 'application/json',
};
const dal = {
createClass: (alias) => {
const epocTime = new Date().getTime();
const start = Math.ceil(epocTime / 1000)
const data = {
title: 'chromecast test',
description: 'test description',
alias,
thumbnail_large_url: 'https://images.bbycastatic.ca/sf/projects/brandstore/google/contents/chromecast/assets/2016-10/logo-lockup-chromecast.png',
stream_url: 'https://wowzaprod126-i.akamaihd.net/hls/live/531651/930fed58/playlist.m3u8',
class_start_time: start,
class_end_time: start + (30 * 60 * 60),
};
const request = {
url: `${videos_url_base}/v1/videos/live`,
method: 'POST',
headers,
data,
};
return axios(request);
},
deleteClass: alias => {
const request = {
url: `${videos_url_base}/v1/videos/live/${alias}`,
method: 'DELETE',
};
return axios(request);
},
endClass: class_id => {
const request = {
url: `${leaderboard_url_base}/v1/leaderboard/classes/${class_id}/end`,
method: 'PATCH',
headers,
};
return axios(request);
},
joinClass: (alias, user_id) => {
const request = {
url: `${url_base}/v1/leaderboard/classes/${alias}/join`,
method: 'POST',
headers,
data: { user_id },
};
return axios(request);
},
leaveClass: (alias, user_id) => {
const request = {
url: `${url_base}/v1/leaderboard/classes/${alias}/leave`,
method: 'POST',
headers,
data: { user_id },
};
return axios(request);
},
registerClass: class_id => {
const request = {
url: `${leaderboard_url_base}/v1/leaderboard/classes`,
method: 'POST',
headers,
data: { class_id },
};
return axios(request);
},
startClass: class_id => {
const request = {
url: `${leaderboard_url_base}/v1/leaderboard/classes/${class_id}/start`,
method: 'PATCH',
headers,
};
return axios(request);
}
}
module.exports = dal;