From 8fafcb5232db55b80347df5e14a90f7891ee78aa Mon Sep 17 00:00:00 2001 From: Cory McWilliams Date: Sat, 19 Mar 2016 19:02:39 +0000 Subject: [PATCH] Just trying a thing. Let apps produce atom content. git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3172 ed5197a5-7fde-0310-b194-c3ffbd925b24 --- core/terminal.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/core/terminal.js b/core/terminal.js index 523a6b3d..312f8ae4 100644 --- a/core/terminal.js +++ b/core/terminal.js @@ -203,6 +203,8 @@ function handler(request, response, packageOwner, packageName, uri) { options.credentials = credentials; if (uri == "/submit") { process = getServiceProcess(packageOwner, packageName, "submit"); + } else if (uri == "/atom") { + process = getServiceProcess(packageOwner, packageName, "atom"); } else { var sessionId = form.decodeForm(request.query).sessionId; var isNewSession = false; @@ -261,6 +263,21 @@ function handler(request, response, packageOwner, packageName, uri) { return response.end(""); }); }); + } else if (uri === "/atom") { + return process.ready.then(function() { + var payload = form.decodeForm(request.body, form.decodeForm(request.query)); + return invoke(process.eventHandlers['onAtom'], [payload]).then(function(content) { + var atomContent = content.join(); + response.writeHead(200, { + "Content-Type": "application/atom+xml; charset=utf-8", + "Content-Length": atomContent.length.toString(), + "Cache-Control": "no-cache, no-store, must-revalidate", + "Pragma": "no-cache", + "Expires": "0", + }); + return response.end(atomContent); + }); + }); } else if (uri === "/receive") { if (isNewSession) { var data = JSON.stringify({