diff --git a/README.md b/README.md index 7e98d323e7..4127e1d18f 100644 --- a/README.md +++ b/README.md @@ -310,6 +310,7 @@ List of Packages | underscore | Handy JavaScript utlities library. | | paypal-rest-sdk | PayPal API library. | | twilio | Twilio API library. | +| clockwork | Clockwork SMS API library. | | validator | Used in conjunction with express-validator in **controllers/api.js**. | diff --git a/app.js b/app.js index 6e17a0752f..6ef91e92e0 100755 --- a/app.js +++ b/app.js @@ -11,6 +11,8 @@ var passport = require('passport'); var expressValidator = require('express-validator'); var connectAssets = require('connect-assets'); + + /** * Load controllers. */ @@ -125,6 +127,8 @@ app.get('/api/steam', apiController.getSteam); app.get('/api/scraping', apiController.getScraping); app.get('/api/twilio', apiController.getTwilio); app.post('/api/twilio', apiController.postTwilio); +app.get('/api/clockwork', apiController.getClockwork); +app.post('/api/clockwork', apiController.postClockwork); app.get('/api/foursquare', passportConf.isAuthenticated, passportConf.isAuthorized, apiController.getFoursquare); app.get('/api/tumblr', passportConf.isAuthenticated, passportConf.isAuthorized, apiController.getTumblr); app.get('/api/facebook', passportConf.isAuthenticated, passportConf.isAuthorized, apiController.getFacebook); diff --git a/controllers/api.js b/controllers/api.js index 43d1c3311f..ea8c9e024b 100644 --- a/controllers/api.js +++ b/controllers/api.js @@ -15,6 +15,7 @@ var Twit = require('twit'); var paypal = require('paypal-rest-sdk'); var twilio = require('twilio')(secrets.twilio.sid, secrets.twilio.token); var Linkedin = require('node-linkedin')(secrets.linkedin.clientID, secrets.linkedin.clientSecret, secrets.linkedin.callbackURL); +var clockwork = require('clockwork')({key: secrets.clockwork.apiKey}); /** * GET /api @@ -413,6 +414,38 @@ exports.postTwilio = function(req, res, next) { }); }; + +/** + * GET /api/Clockwork + * Clockwork SMS API example. + */ + +exports.getClockwork = function(req, res, next) { + res.render('api/clockwork', { + title: 'Clockwork SMS API' + }); +}; + + +/** + * POST /api/Clockwork + * Clockwork SMS API example. + * @param telephone + */ + +exports.postClockwork = function(req, res, next) { + var message = { + To: req.body.telephone, + From: 'Hackathon', + Content: 'Hello from the Hackathon Starter' + }; + clockwork.sendSms(message, function(err, responseData) { + if (err) return next(err.message); + req.flash('success', { msg: 'Text sent to ' + responseData.responses[0].to}); + res.redirect('/api/clockwork'); + }); +}; + /** * GET /api/venmo * Venmo API example. diff --git a/package.json b/package.json index 2416aa00f6..5e9d94df1a 100755 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "async": "~0.2.10", "bcrypt-nodejs": "~0.0.3", "cheerio": "~0.13.1", + "clockwork": "~0.1.1", "connect-assets": "~3.0.0-beta1", "connect-mongo": "~0.4.0", "csso": "~1.3.11", diff --git a/views/api/clockwork.jade b/views/api/clockwork.jade new file mode 100644 index 0000000000..5b07fb9f1b --- /dev/null +++ b/views/api/clockwork.jade @@ -0,0 +1,26 @@ +extends ../layout + +block content + .page-header + h2 + i.fa.fa-phone + | Clockwork SMS API + + .btn-group.btn-group-justified + a.btn.btn-primary(href='http://github.com/mediaburst/node-clockwork', target='_blank') + i.fa.fa-check-square-o + | Clockwork Node + a.btn.btn-primary(href='http://www.clockworksms.com/doc/clever-stuff/xml-interface/send-sms/', target='_blank') + i.fa.fa-code-fork + | XML API + + h4 Send a text message + .row + .col-sm-6 + form(role='form', method='POST') + input(type='hidden', name='_csrf', value=token) + .form-group + .input-group + input.form-control(type='text', name='telephone', placeholder='Phone Number (international format)') + span.input-group-btn + button.btn.btn-success(type='submit') Send diff --git a/views/api/index.jade b/views/api/index.jade index 0ef57f499e..7b030889b8 100644 --- a/views/api/index.jade +++ b/views/api/index.jade @@ -29,6 +29,8 @@ block content a(href='/api/steam') Steam li a(href='/api/twilio') Twilio + li + a(href='/api/clockwork') Clockwork SMS li a(href='/api/tumblr') Tumblr small ⇢ Login Required