From 10a8ad551f9fe18b3e2f647bf4a317313b3b6791 Mon Sep 17 00:00:00 2001 From: Tyler Renelle Date: Fri, 15 Feb 2013 12:26:43 -0500 Subject: [PATCH] got ical to send downloadable icsf files --- package.json | 3 ++- src/server/serverRoutes.coffee | 21 +++++++++++---------- views/app/index.html | 2 +- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 6b05205679..b499d77383 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "coffee-script": "*", "underscore": "*", "mongoskin": "*", - "nconf": "*" + "nconf": "*", + "icalendar": "*" }, "private": true, "subdomain": "habitrpg", diff --git a/src/server/serverRoutes.coffee b/src/server/serverRoutes.coffee index 90d7b7870d..5cb5f562be 100644 --- a/src/server/serverRoutes.coffee +++ b/src/server/serverRoutes.coffee @@ -1,5 +1,6 @@ scoring = require('../app/scoring') _ = require('underscore') +icalendar = require('icalendar') module.exports = (expressApp, root, derby) -> @@ -13,26 +14,26 @@ module.exports = (expressApp, root, derby) -> staticPages.render 'terms', res # localhost:3000/users/9/tasks.ics?apiToken=ae164366-f1ad-4a7d-83ef-b1d1085a96b6 - expressApp.get '/users/:uid/tasks.ics', (req, res, next) -> + expressApp.get '/users/:uid/tasks.ics', (req, res) -> {uid} = req.params {apiToken} = req.query model = req.getModel() query = model.query('users').withIdAndToken(uid, apiToken) query.fetch (err, result) -> - return next(err) if err - userObj = result.at(0).get() - tasksWithDates = _.filter userObj.tasks, (task) -> !!task.date - console.log("DATES LOLOL " + tasksWithDates) + throw err if err + tasks = result.at(0).get('tasks') + tasksWithDates = _.filter tasks, (task) -> !!task.date ical = new icalendar.iCalendar() _.each tasksWithDates, (task) -> + event = new icalendar.VEvent(task.id); + event.setSummary(task.text); +# event.setDate new Date(task.date), 60 * 60 # Duration in seconds + event.setDate new Date(task.date), 60 * 60 # Duration in seconds ical.addComponent event - event2 = ical.addComponent("VEVENT") - event2.setSummary "Second test event" - event2.setDate new Date(2011, 11, 5, 12, 0, 0), 60 * 60 # Duration in seconds - res.send(200, ical.generateIcs()) - next() + res.type('ics') + res.send(200, ical.toString()) # ---------- Deprecated Paths ------------ diff --git a/views/app/index.html b/views/app/index.html index e1be8079e0..28d537c160 100644 --- a/views/app/index.html +++ b/views/app/index.html @@ -607,7 +607,7 @@ do a find for the string after "→" {else if equal(:task.type, 'todo')}
- +
{/}