Blame view

app/lib/index.js 3.13 KB
f6a4415a   Apichat.Tum   start smart-rms-c...
1
2
3
'use strict';

const google = require('googleapis');
d360cefc   TUM.Apichat   move save google ...
4
const googleAuth = require('google-auth-library');
f6a4415a   Apichat.Tum   start smart-rms-c...
5
6
const calendar = google.calendar('v3');
const fs = require('fs');
f6a4415a   Apichat.Tum   start smart-rms-c...
7
const path = require('path');
a54f2679   DESKTOP-RBJDHSM\ADMIN   fix API
8
9
10
const yamlConfig = require('node-yaml-config');
const config = yamlConfig.load(path.join(__dirname, '/../../config/config.yml'));
const CALENDAR_ID = config.calendarID
77034810   Apichat.Tum   fix REST API
11

d360cefc   TUM.Apichat   move save google ...
12
13
14
const SCOPES = ['https://www.googleapis.com/auth/calendar'];
const TOKEN_DIR = (process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE) + '/.credentials/';
const TOKEN_PATH = TOKEN_DIR + 'calendar-nodejs-quickstart.json';
fbe7f7a7   Apichat.Tum   add api google
15
16
17
18
19
20
21
22
23

module.exports = {
    authorize: (callback) => {

        fs.readFile('client_secret.json', (err, content) => {
            if (err) return callback(err);

            let credentials = JSON.parse(content);
            var clientSecret = credentials.installed.client_secret;
f3f14fef   TUM.Apichat   add value config ...
24
            var clientId = credentials.installed.client_id;
fbe7f7a7   Apichat.Tum   add api google
25
26
27
28
29
30
31
            var redirectUrl = credentials.installed.redirect_uris[0];
            var auth = new googleAuth();
            var oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl);

            fs.readFile(TOKEN_PATH, (err, token) => {
                if (err) return callback(err);

f6a4415a   Apichat.Tum   start smart-rms-c...
32
                oauth2Client.credentials = JSON.parse(token);
d360cefc   TUM.Apichat   move save google ...
33
                return callback(null, oauth2Client);
f6a4415a   Apichat.Tum   start smart-rms-c...
34
35
36
            });
        });

cf86e9a3   Apichat.Tum   - ui with oauth2 ...
37
38
39
40
41
42
43
44
    },

    listEvents: (auth, callback) => {
        calendar.events.list({
            auth: auth,
            calendarId: CALENDAR_ID || 'primary',
            timeMin: (new Date()).toISOString(),
            maxResults: 50,
cf86e9a3   Apichat.Tum   - ui with oauth2 ...
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
            singleEvents: true,
            orderBy: 'startTime'
        }, (err, response) => {
            if (err) return callback(err);

            return callback(null, response);
        });
    },

    createEvent: (options, callback) => {
        calendar.events.insert({
            auth: options.auth,
            calendarId: CALENDAR_ID || 'primary',
            resource: options
        }, (err, response) => {
            if (err) return callback(err);

            return callback(null, response);
        });
    },

d360cefc   TUM.Apichat   move save google ...
66
67
68
    deleteEvent: (options, callback) => {
        calendar.events.delete({
            auth: options.auth,
cf86e9a3   Apichat.Tum   - ui with oauth2 ...
69
            calendarId: CALENDAR_ID || 'primary',
d360cefc   TUM.Apichat   move save google ...
70
71
72
73
            eventId: options.eventId
        }, (err, response) => {
            if (err) return callback(err);

cf86e9a3   Apichat.Tum   - ui with oauth2 ...
74
            return callback(null, response);
d360cefc   TUM.Apichat   move save google ...
75
        });
cf86e9a3   Apichat.Tum   - ui with oauth2 ...
76
    },
d360cefc   TUM.Apichat   move save google ...
77

48a9a246   Apichat.Tum   fix auth
78
    eventBuilder: (payload) => {
d360cefc   TUM.Apichat   move save google ...
79
80
81
82
83
84
85
86
87
88
89
90
91

        return {
            summary: payload.summary,
            description: payload.description,
            start: {
                dateTime: payload.startDate,
                timeZone: 'Asia/Bangkok'
            },
            end: {
                dateTime: payload.endDate,
                timeZone: 'Asia/Bangkok'
            },
            attendees: [
cf86e9a3   Apichat.Tum   - ui with oauth2 ...
92
93
                { email: payload.email }
            ],
f6a4415a   Apichat.Tum   start smart-rms-c...
94
            reminders: {
f6a4415a   Apichat.Tum   start smart-rms-c...
95
                useDefault: false,
fbe7f7a7   Apichat.Tum   add api google
96
97
                overrides: [
                    {
f3f14fef   TUM.Apichat   add value config ...
98
                        method: 'email',
fbe7f7a7   Apichat.Tum   add api google
99
100
101
102
103
104
105
                        minutes: 24 * 60
                    }
                ]
            }
        }
    }
}
f6a4415a   Apichat.Tum   start smart-rms-c...

a54f2679   DESKTOP-RBJDHSM\ADMIN   fix API

f6a4415a   Apichat.Tum   start smart-rms-c...

cf86e9a3   Apichat.Tum   - ui with oauth2 ...

fbe7f7a7   Apichat.Tum   add api google

f3f14fef   TUM.Apichat   add value config ...

fbe7f7a7   Apichat.Tum   add api google

48a9a246   Apichat.Tum   fix auth

fbe7f7a7   Apichat.Tum   add api google

48a9a246   Apichat.Tum   fix auth

fbe7f7a7   Apichat.Tum   add api google

48a9a246   Apichat.Tum   fix auth

fbe7f7a7   Apichat.Tum   add api google

cf86e9a3   Apichat.Tum   - ui with oauth2 ...

f6a4415a   Apichat.Tum   start smart-rms-c...

fbe7f7a7   Apichat.Tum   add api google

f6a4415a   Apichat.Tum   start smart-rms-c...

a54f2679   DESKTOP-RBJDHSM\ADMIN   fix API

f6a4415a   Apichat.Tum   start smart-rms-c...

a54f2679   DESKTOP-RBJDHSM\ADMIN   fix API

f6a4415a   Apichat.Tum   start smart-rms-c...

a54f2679   DESKTOP-RBJDHSM\ADMIN   fix API

f6a4415a   Apichat.Tum   start smart-rms-c...

a54f2679   DESKTOP-RBJDHSM\ADMIN   fix API

77034810   Apichat.Tum   fix REST API

7598c58f   Apichat.Tum   add eventTypeID /...

77034810   Apichat.Tum   fix REST API

a54f2679   DESKTOP-RBJDHSM\ADMIN   fix API

cf86e9a3   Apichat.Tum   - ui with oauth2 ...

77034810   Apichat.Tum   fix REST API

cf86e9a3   Apichat.Tum   - ui with oauth2 ...

21a1ff19   Apichat.Tum   fix follow smartr...

77034810   Apichat.Tum   fix REST API

77034810   Apichat.Tum   fix REST API

21a1ff19   Apichat.Tum   fix follow smartr...

77034810   Apichat.Tum   fix REST API

21a1ff19   Apichat.Tum   fix follow smartr...

77034810   Apichat.Tum   fix REST API

21a1ff19   Apichat.Tum   fix follow smartr...

77034810   Apichat.Tum   fix REST API

7598c58f   Apichat.Tum   add eventTypeID /...

77034810   Apichat.Tum   fix REST API

1244ae71   Apichat.Tum   new response

77034810   Apichat.Tum   fix REST API

cf86e9a3   Apichat.Tum   - ui with oauth2 ...

77034810   Apichat.Tum   fix REST API

fbe7f7a7   Apichat.Tum   add api google

77034810   Apichat.Tum   fix REST API

fbe7f7a7   Apichat.Tum   add api google

77034810   Apichat.Tum   fix REST API

fbe7f7a7   Apichat.Tum   add api google

77034810   Apichat.Tum   fix REST API

fbe7f7a7   Apichat.Tum   add api google

cf86e9a3   Apichat.Tum   - ui with oauth2 ...

77034810   Apichat.Tum   fix REST API

fbe7f7a7   Apichat.Tum   add api google

cf86e9a3   Apichat.Tum   - ui with oauth2 ...

21a1ff19   Apichat.Tum   fix follow smartr...

cf86e9a3   Apichat.Tum   - ui with oauth2 ...

21a1ff19   Apichat.Tum   fix follow smartr...

cf86e9a3   Apichat.Tum   - ui with oauth2 ...

7598c58f   Apichat.Tum   add eventTypeID /...

1244ae71   Apichat.Tum   new response

cf86e9a3   Apichat.Tum   - ui with oauth2 ...

a54f2679   DESKTOP-RBJDHSM\ADMIN   fix API

cf86e9a3   Apichat.Tum   - ui with oauth2 ...

a54f2679   DESKTOP-RBJDHSM\ADMIN   fix API

fbe7f7a7   Apichat.Tum   add api google

f3f14fef   TUM.Apichat   add value config ...

fbe7f7a7   Apichat.Tum   add api google

f6a4415a   Apichat.Tum   start smart-rms-c...

fbe7f7a7   Apichat.Tum   add api google