-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.js
122 lines (106 loc) · 2.94 KB
/
index.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
119
120
121
122
const fs = require('fs');
const { google } = require('googleapis');
var oAuth2Client, gevents;
const SCOPES = ['https://www.googleapis.com/auth/calendar'];
//always runs
fs.readFile('credentials.json', (err, content) => {
if (err) return console.log('Error loading client secret file:', err);
authorize(JSON.parse(content));
});
function authorize(credentials) {
const { client_secret, client_id, redirect_uris } = credentials.installed;
oAuth2Client = new google.auth.OAuth2(
client_id, client_secret, redirect_uris[0]);
}
//for initializing new user (has to be called)
function getAccessUrl() {
const authUrl = oAuth2Client.generateAuthUrl({
access_type: 'offline',
scope: SCOPES,
});
return authUrl
}
async function getAccessToken(code) {
try{
const token = await oAuth2Client.getToken(code)
return token.tokens
}
catch(error){
console.error(error);
}
}
async function listEvents(token) {
const auth = oAuth2Client
await oAuth2Client.setCredentials(token);
const calendar = google.calendar({ version: 'v3', auth });
const response = await calendar.events.list({
calendarId: 'primary',
timeMin: (new Date()).toISOString(),
maxResults: 10,
singleEvents: true,
orderBy: 'startTime',
})
const list = await calendar.calendarList.list()
console.log('printing list')
console.log(list.data.items)
gevents = response.data.items
console.log('returning all events')
// return all events
return gevents
}
async function createEvent(params, token) {
const auth = oAuth2Client
await oAuth2Client.setCredentials(token);
const calendar = google.calendar({ version: 'v3', auth });
// console.log(params)
var event = {
'summary': params.name,
'location': 'KIIT University',
'description': params.code,
'start': {
'dateTime': `${params.date}T${params.stime}:00+05:30`,
'timeZone': 'Asia/Kolkata',
},
'end': {
'dateTime': `${params.date}T${params.etime}:00+05:30`,
'timeZone': 'Asia/Kolkata',
},
'attendees':[{'email':params.attendees}],
'colorId': '1',
'conferenceData': {
'conferenceSolution': {
'key': {
'type': 'hangoutsMeet'
}
},
'createRequest': {
'requestId': `random69`
}
},
'reminders': {
'useDefault': false,
'overrides': [
{ 'method': 'email', 'minutes': 24 * 60 },
{ 'method': 'popup', 'minutes': 10 },
],
},
};
try {
// console.log(event)
console.log('request sent')
const response = await calendar.events.insert({
auth: auth,
calendarId: 'primary',
resource: event,
},)
console.log('after request sent')
console.log(response.data)
return response.data
} catch (error) {
console.log(error)
return 'error'
}
// .then( request => console.log(request.data))
// .catch(err => console.log(err))
}
module.exports = { getAccessUrl, getAccessToken, listEvents ,createEvent}