diff options
| author | Jules Laplace <jules@okfoc.us> | 2016-09-02 13:24:55 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2016-09-02 13:24:55 -0400 |
| commit | 8def9579f2a78e80652d1e5e6f1eda510ae9a5dd (patch) | |
| tree | c56d664f04d55f0d75c6d4f5e2d6fc567054498d /app/node_modules/okservices/oktwitter/index.js | |
| parent | 4ed81fa59119cee66b0413c5662639ec81fea4dc (diff) | |
| parent | 5052d51aa4c55eabc736b3c76a783db2f5208289 (diff) | |
merge changes from twohustlers
Diffstat (limited to 'app/node_modules/okservices/oktwitter/index.js')
| -rw-r--r-- | app/node_modules/okservices/oktwitter/index.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/app/node_modules/okservices/oktwitter/index.js b/app/node_modules/okservices/oktwitter/index.js new file mode 100644 index 0000000..ec4945d --- /dev/null +++ b/app/node_modules/okservices/oktwitter/index.js @@ -0,0 +1,48 @@ +var Twit = require('twit') + +/** + * Proxy to Twitter API adding auth creds + * TODO Technically can be abused by anyone right now. + * Should add some sort of same origin policy. + */ +function OKTwitter (options) { + if (!(this instanceof OKTwitter)) return new OKTwitter(options) + options = options || {} + if (!options.express) + throw new Error('Express not provided to OKTwitter'); + if (!options.credentials) + throw new Error('Twitter credentials not provided to OKTwitter'); + + var express = options.express + var router = express.Router() + var creds = options.credentials + var twitter = new Twit({ + consumer_key: creds.consumerKey, + consumer_secret: creds.consumerSecret, + access_token: creds.accessToken, + access_token_secret: creds.accessTokenSecret, + }) + + router.get('*', function (req, res) { + twitter.get(req.path.slice(1), req.query, function (err, data) { + if (err) { + res.status(err.statusCode) + res.send(err.twitterReply) + } else { + res.json(data) + } + }) + }) + + router.post('*', function (req, res) { + throw new Error('Twitter POST requests not implemented') + }) + + this._router = router +} + +OKTwitter.prototype.middleware = function () { + return this._router +} + +module.exports = OKTwitter |
