Skip to content

Commit d44a950

Browse files
author
Igor Drobiazko
authored
Merge pull request #4 from elasticio/extend_event_out_metadata
Extend event out metadata
2 parents 1e6a7b5 + 88866b5 commit d44a950

File tree

3 files changed

+230
-18
lines changed

3 files changed

+230
-18
lines changed

lib/actions/createEvent.js

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,11 @@ function processAction(msg, cfg) {
4141
}
4242

4343
function emitData(data) {
44-
const id = data.id;
45-
console.log('Successfully created event with ID='+id);
46-
let messageBody = {
47-
id,
48-
calendarId: cfg.calendarId
49-
};
50-
console.log('Emitting data ...');
51-
self.emit('data', messages.newMessageWithBody(messageBody));
44+
const id = data.id;
45+
data.calendarId = cfg.calendarId;
46+
console.log('Successfully created event with ID=' + id);
47+
console.log('Emitting data ...');
48+
self.emit('data', messages.newMessageWithBody(data));
5249
}
5350

5451
function emitError(e) {

lib/schemas/createEvent.out.json

Lines changed: 190 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,199 @@
66
"required":false,
77
"title":"Event ID"
88
},
9+
"createdDateTime": {
10+
"type":"string",
11+
"required":false,
12+
"title":"Created Date Time"
13+
},
14+
"lastModifiedDateTime": {
15+
"type":"string",
16+
"required":false,
17+
"title":"Last Modified Date Time"
18+
},
19+
"originalStartTimeZone": {
20+
"type":"string",
21+
"required":false,
22+
"title":"Original Start Time Zone"
23+
},
24+
"originalEndTimeZone": {
25+
"type":"string",
26+
"required":false,
27+
"title":"Original End Time Zone"
28+
},
29+
"iCalUId": {
30+
"type":"string",
31+
"required":false,
32+
"title":"iCalUId"
33+
},
34+
"reminderMinutesBeforeStart": {
35+
"type":"string",
36+
"required":false,
37+
"title":"Reminder Minutes Before Start"
38+
},
39+
"subject": {
40+
"type":"string",
41+
"required":false,
42+
"title":"Subject"
43+
},
44+
"importance": {
45+
"type":"string",
46+
"required":false,
47+
"title":"Importance"
48+
},
49+
"sensitivity": {
50+
"type":"string",
51+
"required":false,
52+
"title":"Sensitivity"
53+
},
54+
"isAllDay": {
55+
"type":"boolean",
56+
"required":false,
57+
"title":"Is All Day"
58+
},
59+
"isCancelled": {
60+
"type":"boolean",
61+
"required":false,
62+
"title":"Is Cancelled"
63+
},
64+
"isOrganizer": {
65+
"type":"boolean",
66+
"required":false,
67+
"title":"Is Organizer"
68+
},
69+
"showAs": {
70+
"type":"string",
71+
"required":false,
72+
"title":"Show As"
73+
},
74+
"webLink": {
75+
"type":"string",
76+
"required":false,
77+
"title":"Web Link"
78+
},
79+
"body": {
80+
"type":"object",
81+
"required":false,
82+
"title":"Object",
83+
"properties": {
84+
"contentType": {
85+
"type":"string",
86+
"required":false,
87+
"title":"Body Content-Type"
88+
},
89+
"content": {
90+
"type":"string",
91+
"required":false,
92+
"title":"Body Content"
93+
}
94+
}
95+
},
96+
"start": {
97+
"type":"object",
98+
"required":false,
99+
"title":"Start",
100+
"properties": {
101+
"dateTime": {
102+
"type":"string",
103+
"required":false,
104+
"title":"Start Date and Time"
105+
},
106+
"timeZone": {
107+
"type":"string",
108+
"required":false,
109+
"title":"Start Time Zone"
110+
}
111+
}
112+
},
113+
"end": {
114+
"type":"object",
115+
"required":false,
116+
"title":"End",
117+
"properties": {
118+
"dateTime": {
119+
"type":"string",
120+
"required":false,
121+
"title":"End Date and Time"
122+
},
123+
"timeZone": {
124+
"type":"string",
125+
"required":false,
126+
"title":"End Time Zone"
127+
}
128+
}
129+
},
130+
"location": {
131+
"type":"object",
132+
"required":false,
133+
"title":"Location",
134+
"properties": {
135+
"displayName": {
136+
"type":"string",
137+
"required":false,
138+
"title":"Location Display Name"
139+
},
140+
"address": {
141+
"type":"object",
142+
"required":false,
143+
"title":"Location Address",
144+
"properties": {
145+
"street": {
146+
"type":"string",
147+
"required":false,
148+
"title":"Location Street"
149+
},
150+
"city": {
151+
"type":"string",
152+
"required":false,
153+
"title":"Location City"
154+
},
155+
"state": {
156+
"type":"string",
157+
"required":false,
158+
"title":"Location State"
159+
},
160+
"countryOrRegion": {
161+
"type":"string",
162+
"required":false,
163+
"title":"Location Country/Region"
164+
},
165+
"postalCode": {
166+
"type":"string",
167+
"required":false,
168+
"title":"Location Postal Code"
169+
}
170+
}
171+
}
172+
}
173+
},
174+
"organizer": {
175+
"type":"object",
176+
"required":false,
177+
"title":"Organizer",
178+
"properties": {
179+
"emailAddress": {
180+
"type":"object",
181+
"required":false,
182+
"title":"Organizer Address",
183+
"properties": {
184+
"name": {
185+
"type":"string",
186+
"required":false,
187+
"title":"Organizer Name"
188+
},
189+
"address": {
190+
"type":"string",
191+
"required":false,
192+
"title":"Organizer Email Address"
193+
}
194+
}
195+
}
196+
}
197+
},
9198
"calendarId": {
10199
"type":"string",
11200
"required":false,
12-
"title":"Event Calendar ID"
201+
"title":"Calendar ID"
13202
}
14203
}
15204
}

spec/actions/createEvent.spec.js

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ describe('Outlook Create Event', function test() {
2323
it('should emit (data and end events on success create request - case: http 200', done => {
2424
const scope1 = nock(refreshTokenUri).post(refreshTokenApi)
2525
.reply(200, {
26-
access_token: 1
27-
});
26+
access_token: 1
27+
});
2828

2929
const scope2 = nock(microsoftGraphUri).post(microsoftGraphApi)
3030
.reply(200, jsonOut);
@@ -36,6 +36,19 @@ describe('Outlook Create Event', function test() {
3636
expect(calls.argsFor(1)[0]).toEqual('end');
3737
expect(calls.argsFor(0)[1].body).toEqual({
3838
id: 'testid12345',
39+
subject: 'Unit Test - Simple Event',
40+
body: {
41+
contentType: 'HTML',
42+
content: 'This is a test.'
43+
},
44+
start: {
45+
dateTime: '2017-05-19T18:00:00',
46+
timeZone: 'Central European Standard Time'
47+
},
48+
end: {
49+
dateTime: '2017-05-20T19:00:00',
50+
timeZone: 'Central European Standard Time'
51+
},
3952
calendarId: 'AAMkAGYyNmJlYjBmLTgwOWYtNGU0Mi04NW'
4053
});
4154
expect(scope1.isDone()).toBeTruthy();
@@ -53,8 +66,8 @@ describe('Outlook Create Event', function test() {
5366
it('should emit (data and end events on success create request - case: http 201', done => {
5467
const scope1 = nock(refreshTokenUri).post(refreshTokenApi)
5568
.reply(200, {
56-
access_token: 1
57-
});
69+
access_token: 1
70+
});
5871

5972
const scope2 = nock(microsoftGraphUri).post(microsoftGraphApi)
6073
.reply(201, jsonOut);
@@ -66,6 +79,19 @@ describe('Outlook Create Event', function test() {
6679
expect(calls.argsFor(1)[0]).toEqual('end');
6780
expect(calls.argsFor(0)[1].body).toEqual({
6881
id: 'testid12345',
82+
subject: 'Unit Test - Simple Event',
83+
body: {
84+
contentType: 'HTML',
85+
content: 'This is a test.'
86+
},
87+
start: {
88+
dateTime: '2017-05-19T18:00:00',
89+
timeZone: 'Central European Standard Time'
90+
},
91+
end: {
92+
dateTime: '2017-05-20T19:00:00',
93+
timeZone: 'Central European Standard Time'
94+
},
6995
calendarId: 'AAMkAGYyNmJlYjBmLTgwOWYtNGU0Mi04NW'
7096
});
7197
expect(scope1.isDone()).toBeTruthy();
@@ -83,7 +109,7 @@ describe('Outlook Create Event', function test() {
83109
it('should emit error and end events on unsuccessful refresh token request', done => {
84110
const scope1 = nock(refreshTokenUri).post(refreshTokenApi)
85111
.reply(401, {
86-
access_token: 1
112+
access_token: 1
87113
});
88114

89115
function checkResults() {
@@ -106,8 +132,8 @@ describe('Outlook Create Event', function test() {
106132
it('should emit error and end events on unsuccessful create request - case: bad request', done => {
107133
const scope1 = nock(refreshTokenUri).post(refreshTokenApi)
108134
.reply(200, {
109-
access_token: 1
110-
});
135+
access_token: 1
136+
});
111137

112138
const scope2 = nock(microsoftGraphUri).post(microsoftGraphApi)
113139
.reply(400, jsonOut);
@@ -132,8 +158,8 @@ describe('Outlook Create Event', function test() {
132158
it('should emit error and end events on unsuccessful create request - case: consent problems', done => {
133159
const scope1 = nock(refreshTokenUri).post(refreshTokenApi)
134160
.reply(200, {
135-
access_token: 1
136-
});
161+
access_token: 1
162+
});
137163

138164
const scope2 = nock(microsoftGraphUri).post(microsoftGraphApi)
139165
.reply(403, jsonOut);

0 commit comments

Comments
 (0)