-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathapiRequest.js
118 lines (106 loc) · 3.86 KB
/
apiRequest.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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
const request = require('request');
const url = "https://api.line.me/liff/v1/apps";
var apiRequest = {
listLiff: function() {
const options = {
url: url,
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.LINE_ACCESS_TOKEN}`,
'Content-Type': 'application/json'
}
};
return new Promise((resolve, reject) => {
request(options, (error, response, body) => {
if(apiRequest.isFailedStatus(response, body)) { return }
let jsonResult = JSON.parse(body);
return resolve(jsonResult);
});
})
},
deleteLiff: function(liffId) {
const options = {
url: `${url}/${liffId}`,
method: 'DELETE',
headers: {
'Authorization': `Bearer ${process.env.LINE_ACCESS_TOKEN}`
}
};
return new Promise((resolve, reject) => {
request(options, (error, response, body) => {
if(apiRequest.isFailedStatus(response, body)) { return }
return resolve(`[LIFF ID] ${liffId} has been deleted`);
});
})
},
updateLiff: function(liffId, view){
let jsonView = JSON.stringify(view);
const options = {
url: `${url}/${liffId}/view`,
method: 'PUT',
headers: {
'Authorization': `Bearer ${process.env.LINE_ACCESS_TOKEN}`,
'Content-Type': 'application/json'
},
body: jsonView
};
return new Promise((resolve, reject) => {
request(options, (error, response, body) => {
if(apiRequest.isFailedStatus(response, body)) { return }
console.log(`[LIFF ID] ${liffId} has been updated`);
});
})
},
sendLiff: function(liffId, userId){
let message = { "to": userId, "messages": [{ "type": "text", "text": `https://liff.line.me/${liffId}` }] };
let jsonMessage = JSON.stringify(message);
const options = {
url: `https://api.line.me/v2/bot/message/push`,
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.LINE_ACCESS_TOKEN}`,
'Content-Type': 'application/json'
},
body: jsonMessage
};
return new Promise((resolve, reject) => {
request(options, (error, response, body) => {
if(apiRequest.isFailedStatus(response, body)) { return }
console.log(`Message sent to ${userId}`);
});
})
},
addLiff: function(view){
let jsonView = JSON.stringify(view);
const options = {
url: `${url}`,
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.LINE_ACCESS_TOKEN}`,
'Content-Type': 'application/json'
},
body: jsonView
};
return new Promise((resolve, reject) => {
request(options, (error, response, body) => {
if(apiRequest.isFailedStatus(response, body)) { return }
let jsonResult = JSON.parse(body);
console.log(`[LIFF ID] ${jsonResult.liffId} created`);
console.log(`accessible uri : https://liff.line.me/${jsonResult.liffId}`);
});
})
},
isFailedStatus: function(response, body){
if (response.statusCode === 401) {
console.log(`${response.statusCode} Authentication failed.`);
} else if (response.statusCode === 400) {
let jsonResult = JSON.parse(body);
console.log(`${jsonResult.message}`);
}
if (response.statusCode !== 200) {
return true;
}
return false
}
};
module.exports = apiRequest;