|
@@ -11,7 +11,7 @@ if not have_async then
|
11
|
11
|
return;
|
12
|
12
|
end
|
13
|
13
|
|
14
|
|
-local wrap_async_run = module:require "util".wrap_async_run;
|
|
14
|
+local async_handler_wrapper = module:require "util".async_handler_wrapper;
|
15
|
15
|
|
16
|
16
|
-- Options
|
17
|
17
|
local poltergeist_component
|
|
@@ -175,7 +175,7 @@ module:hook(
|
175
|
175
|
-- @return GET response, containing a json with response details
|
176
|
176
|
function handle_create_poltergeist (event)
|
177
|
177
|
if (not event.request.url.query) then
|
178
|
|
- return 400;
|
|
178
|
+ return { status_code = 400; };
|
179
|
179
|
end
|
180
|
180
|
|
181
|
181
|
local params = parse(event.request.url.query);
|
|
@@ -189,7 +189,7 @@ function handle_create_poltergeist (event)
|
189
|
189
|
local session = {};
|
190
|
190
|
|
191
|
191
|
if not verify_token(params["token"], room_name, group, session) then
|
192
|
|
- return 403;
|
|
192
|
+ return { status_code = 403; };
|
193
|
193
|
end
|
194
|
194
|
|
195
|
195
|
-- If the provided room conference doesn't exist then we
|
|
@@ -197,7 +197,7 @@ function handle_create_poltergeist (event)
|
197
|
197
|
local room = get_room(room_name, group);
|
198
|
198
|
if (not room) then
|
199
|
199
|
log("error", "no room found %s", room_name);
|
200
|
|
- return 404;
|
|
200
|
+ return { status_code = 404; };
|
201
|
201
|
end
|
202
|
202
|
|
203
|
203
|
-- If the poltergiest is already in the conference then it will
|
|
@@ -210,7 +210,7 @@ function handle_create_poltergeist (event)
|
210
|
210
|
username,
|
211
|
211
|
room_name
|
212
|
212
|
);
|
213
|
|
- return 202;
|
|
213
|
+ return { status_code = 202; };
|
214
|
214
|
end
|
215
|
215
|
|
216
|
216
|
local context = {
|
|
@@ -228,7 +228,7 @@ function handle_create_poltergeist (event)
|
228
|
228
|
end
|
229
|
229
|
|
230
|
230
|
poltergeist.add_to_muc(room, user_id, name, avatar, context, status, resources)
|
231
|
|
- return 200;
|
|
231
|
+ return { status_code = 200; };
|
232
|
232
|
end
|
233
|
233
|
|
234
|
234
|
--- Handles request for updating poltergeists status
|
|
@@ -236,7 +236,7 @@ end
|
236
|
236
|
-- @return GET response, containing a json with response details
|
237
|
237
|
function handle_update_poltergeist (event)
|
238
|
238
|
if (not event.request.url.query) then
|
239
|
|
- return 400;
|
|
239
|
+ return { status_code = 400; };
|
240
|
240
|
end
|
241
|
241
|
|
242
|
242
|
local params = parse(event.request.url.query);
|
|
@@ -252,18 +252,18 @@ function handle_update_poltergeist (event)
|
252
|
252
|
end
|
253
|
253
|
|
254
|
254
|
if not verify_token(params["token"], room_name, group, {}) then
|
255
|
|
- return 403;
|
|
255
|
+ return { status_code = 403; };
|
256
|
256
|
end
|
257
|
257
|
|
258
|
258
|
local room = get_room(room_name, group);
|
259
|
259
|
if (not room) then
|
260
|
260
|
log("error", "no room found %s", room_name);
|
261
|
|
- return 404;
|
|
261
|
+ return { status_code = 404; };
|
262
|
262
|
end
|
263
|
263
|
|
264
|
264
|
local username = poltergeist.get_username(room, user_id);
|
265
|
265
|
if (not username) then
|
266
|
|
- return 404;
|
|
266
|
+ return { status_code = 404; };
|
267
|
267
|
end
|
268
|
268
|
|
269
|
269
|
local call_details = {
|
|
@@ -273,11 +273,11 @@ function handle_update_poltergeist (event)
|
273
|
273
|
|
274
|
274
|
local nick = poltergeist.create_nick(username);
|
275
|
275
|
if (not poltergeist.occupies(room, nick)) then
|
276
|
|
- return 404;
|
|
276
|
+ return { status_code = 404; };
|
277
|
277
|
end
|
278
|
278
|
|
279
|
279
|
poltergeist.update(room, nick, status, call_details);
|
280
|
|
- return 200;
|
|
280
|
+ return { status_code = 200; };
|
281
|
281
|
end
|
282
|
282
|
|
283
|
283
|
--- Handles remove poltergeists
|
|
@@ -285,7 +285,7 @@ end
|
285
|
285
|
-- @return GET response, containing a json with response details
|
286
|
286
|
function handle_remove_poltergeist (event)
|
287
|
287
|
if (not event.request.url.query) then
|
288
|
|
- return 400;
|
|
288
|
+ return { status_code = 400; };
|
289
|
289
|
end
|
290
|
290
|
|
291
|
291
|
local params = parse(event.request.url.query);
|
|
@@ -294,27 +294,27 @@ function handle_remove_poltergeist (event)
|
294
|
294
|
local group = params["group"];
|
295
|
295
|
|
296
|
296
|
if not verify_token(params["token"], room_name, group, {}) then
|
297
|
|
- return 403;
|
|
297
|
+ return { status_code = 403; };
|
298
|
298
|
end
|
299
|
299
|
|
300
|
300
|
local room = get_room(room_name, group);
|
301
|
301
|
if (not room) then
|
302
|
302
|
log("error", "no room found %s", room_name);
|
303
|
|
- return 404;
|
|
303
|
+ return { status_code = 404; };
|
304
|
304
|
end
|
305
|
305
|
|
306
|
306
|
local username = poltergeist.get_username(room, user_id);
|
307
|
307
|
if (not username) then
|
308
|
|
- return 404;
|
|
308
|
+ return { status_code = 404; };
|
309
|
309
|
end
|
310
|
310
|
|
311
|
311
|
local nick = poltergeist.create_nick(username);
|
312
|
312
|
if (not poltergeist.occupies(room, nick)) then
|
313
|
|
- return 404;
|
|
313
|
+ return { status_code = 404; };
|
314
|
314
|
end
|
315
|
315
|
|
316
|
316
|
poltergeist.remove(room, nick, false);
|
317
|
|
- return 200;
|
|
317
|
+ return { status_code = 200; };
|
318
|
318
|
end
|
319
|
319
|
|
320
|
320
|
log("info", "Loading poltergeist service");
|
|
@@ -323,8 +323,8 @@ module:provides("http", {
|
323
|
323
|
default_path = "/";
|
324
|
324
|
name = "poltergeist";
|
325
|
325
|
route = {
|
326
|
|
- ["GET /poltergeist/create"] = function (event) return wrap_async_run(event,handle_create_poltergeist) end;
|
327
|
|
- ["GET /poltergeist/update"] = function (event) return wrap_async_run(event,handle_update_poltergeist) end;
|
328
|
|
- ["GET /poltergeist/remove"] = function (event) return wrap_async_run(event,handle_remove_poltergeist) end;
|
|
326
|
+ ["GET /poltergeist/create"] = function (event) return async_handler_wrapper(event,handle_create_poltergeist) end;
|
|
327
|
+ ["GET /poltergeist/update"] = function (event) return async_handler_wrapper(event,handle_update_poltergeist) end;
|
|
328
|
+ ["GET /poltergeist/remove"] = function (event) return async_handler_wrapper(event,handle_remove_poltergeist) end;
|
329
|
329
|
};
|
330
|
330
|
});
|