feat: Add support for multiple google calendars
This commit is contained in:
1 parent
3a6eae8b8f
commit
5f101ca5fc
3 files changed
+29
-16
No files matched your search
+27
-14
@@ -139,20 +139,33 @@ const GoogleCalendar = (credential) => {
|
||||
return {
|
||||
getAvailability: (dateFrom, dateTo) => new Promise( (resolve, reject) => {
|
||||
const calendar = google.calendar({ version: 'v3', auth: myGoogleAuth });
|
||||
calendar.freebusy.query({
|
||||
requestBody: {
|
||||
timeMin: dateFrom,
|
||||
timeMax: dateTo,
|
||||
items: [ {
|
||||
"id": "primary"
|
||||
} ]
|
||||
}
|
||||
}, (err, apires) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
resolve(apires.data.calendars.primary.busy)
|
||||
});
|
||||
calendar.calendarList
|
||||
.list()
|
||||
.then(cals => {
|
||||
const items = cals.data.items.filter(
|
||||
item => !/calendar.google.com/.test(item.id)
|
||||
);
|
||||
calendar.freebusy.query({
|
||||
requestBody: {
|
||||
timeMin: dateFrom,
|
||||
timeMax: dateTo,
|
||||
items: items
|
||||
}
|
||||
}, (err, apires) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
resolve(
|
||||
Object.values(apires.data.calendars).flatMap(
|
||||
(item) => item["busy"]
|
||||
)
|
||||
)
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
reject(err);
|
||||
});
|
||||
|
||||
}),
|
||||
createEvent: (event: CalendarEvent) => new Promise( (resolve, reject) => {
|
||||
const payload = {
|
||||
|
||||
Reference in new issue
Block a user