From f8208214d6b3f7e062a25fa0dbea6cc349b55827 Mon Sep 17 00:00:00 2001 From: koba789 Date: Mon, 9 Jan 2012 01:19:11 +0900 Subject: [PATCH] first commit. sorry, this is too larrge commit. --- README.md | 1 + lib/apis/authorize.js | 6 ++++++ lib/apis/callback.js | 3 +++ lib/apis/filters.js | 9 +++++++++ lib/apis/index.js | 7 +++++++ lib/apis/statuses.js | 0 lib/config.js | 5 +++++ lib/config.json | 4 ++++ lib/consumerkey.js | 28 ++++++++++++++++++++++++++++ lib/index.js | 14 ++++++++++++++ lib/keychain.js | 2 ++ lib/routes.js | 16 ++++++++++++++++ lib/schemata.js | 23 +++++++++++++++++++++++ lib/session.js | 3 +++ lib/tie.js | 7 +++++++ lib/twitter_auth.js | 9 +++++++++ package.json | 18 ++++++++++++++++++ test/mocha.opts | 4 ++++ test/test.coffee | 3 +++ 19 files changed, 162 insertions(+) create mode 100644 README.md create mode 100644 lib/apis/authorize.js create mode 100644 lib/apis/callback.js create mode 100644 lib/apis/filters.js create mode 100644 lib/apis/index.js create mode 100644 lib/apis/statuses.js create mode 100644 lib/config.js create mode 100644 lib/config.json create mode 100644 lib/consumerkey.js create mode 100644 lib/index.js create mode 100644 lib/keychain.js create mode 100644 lib/routes.js create mode 100644 lib/schemata.js create mode 100644 lib/session.js create mode 100644 lib/tie.js create mode 100644 lib/twitter_auth.js create mode 100644 package.json create mode 100644 test/mocha.opts create mode 100644 test/test.coffee diff --git a/README.md b/README.md new file mode 100644 index 0000000..a9ed77c --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Some text. \ No newline at end of file diff --git a/lib/apis/authorize.js b/lib/apis/authorize.js new file mode 100644 index 0000000..a130916 --- /dev/null +++ b/lib/apis/authorize.js @@ -0,0 +1,6 @@ +var oauth = require('oauth-revenge'); + +module.exports.index = function (req, res) { + + res.end('login'); +}; \ No newline at end of file diff --git a/lib/apis/callback.js b/lib/apis/callback.js new file mode 100644 index 0000000..da69b47 --- /dev/null +++ b/lib/apis/callback.js @@ -0,0 +1,3 @@ +module.exports.index = function (req, res) { + +}; \ No newline at end of file diff --git a/lib/apis/filters.js b/lib/apis/filters.js new file mode 100644 index 0000000..c860ee6 --- /dev/null +++ b/lib/apis/filters.js @@ -0,0 +1,9 @@ +var filters = module.exports; + +filters.index = function (req, res) { + +}; + +filters.show = function (req, res) { + +}; \ No newline at end of file diff --git a/lib/apis/index.js b/lib/apis/index.js new file mode 100644 index 0000000..da0abfc --- /dev/null +++ b/lib/apis/index.js @@ -0,0 +1,7 @@ +var apis = module.exports; + +apis.authorize = require('./authorize'); +apis.callback = require('./callback'); + +apis.statuses = require('./statuses'); +apis.filters = require('./filters'); \ No newline at end of file diff --git a/lib/apis/statuses.js b/lib/apis/statuses.js new file mode 100644 index 0000000..e69de29 diff --git a/lib/config.js b/lib/config.js new file mode 100644 index 0000000..6f80baf --- /dev/null +++ b/lib/config.js @@ -0,0 +1,5 @@ +module.exports.set = function (config) { + for (var key in config) { + module.exports[key] = config[key]; + } +}; \ No newline at end of file diff --git a/lib/config.json b/lib/config.json new file mode 100644 index 0000000..f013629 --- /dev/null +++ b/lib/config.json @@ -0,0 +1,4 @@ +{ + "LISTEN_PORT": "3000", + "MONGODB": "mongodb://localhost/test_db" +} \ No newline at end of file diff --git a/lib/consumerkey.js b/lib/consumerkey.js new file mode 100644 index 0000000..88c6708 --- /dev/null +++ b/lib/consumerkey.js @@ -0,0 +1,28 @@ +var Keychain = require('./schemata').Keychain; + +var noop = function () {}; + +module.exports.init = function (name, callback) { + name = name || 'default'; + Keychain.findOne({ name: name }, function (err, keychains) { + if (err) { throw err; } + module.exports.key = keychains.key; + module.exports.secret = keychains.secret; + process.nextTick(callback || noop); + }); +}; + +module.exports.tie = function (name, key, secret) { + var keychain = new Keychain({ + name: name, + key: key, + secret: secret + }); + + keychain.save(function (err) { + if (err) { throw err; } + }); +}; + +module.exports.key = ''; +module.exports.secret = ''; \ No newline at end of file diff --git a/lib/index.js b/lib/index.js new file mode 100644 index 0000000..69ad996 --- /dev/null +++ b/lib/index.js @@ -0,0 +1,14 @@ +var config = require('./config.json'); + +var router = require('router').create(); +var consumerkey = require('./consumerkey'); +var apis = require('./apis'); +var routes = require('./routes'); + +function init() { + consumerkey.init(); + routes.setup(router, apis); + router.listen(config.LISTEN_PORT); +} + +init(); \ No newline at end of file diff --git a/lib/keychain.js b/lib/keychain.js new file mode 100644 index 0000000..2bb1926 --- /dev/null +++ b/lib/keychain.js @@ -0,0 +1,2 @@ +var Model = require('LazyBoy'); + diff --git a/lib/routes.js b/lib/routes.js new file mode 100644 index 0000000..eb895c4 --- /dev/null +++ b/lib/routes.js @@ -0,0 +1,16 @@ +module.exports.setup = function (router, apis) { + router.get('/', function(req, res) { + res.writeHead(200); + var result = { message: 'Welcome to Read Fav Later!' }; + res.end(JSON.stringify(result)); + }); + + router.get('/authorize', apis.authorize.index); + router.get('/callback', apis.callback.index); + + router.get('/statuses', apis.status.index); + router.get('/statuses/{item}', apis.status.show); + + router.get('/filters', apis.filters.index); + router.get('/filters/{filter}', apis.filters.index); +}; \ No newline at end of file diff --git a/lib/schemata.js b/lib/schemata.js new file mode 100644 index 0000000..eaf2895 --- /dev/null +++ b/lib/schemata.js @@ -0,0 +1,23 @@ +var config = require('./config.json'); + +var mongoose = require('mongoose'); +mongoose.connect(config.MONGODB); +var Schema = mongoose.Schema, + ObjectId = Schema.ObjectId; + +var User = new Schema({ + screen_name: String, + twitter_uid: Number, + token: String, + accessToken: String +}); +module.exports.User = + mongoose.model('User', User); + +var ConsumerKey = new Schema({ + name: String, + key: String, + secret: String +}); +module.exports.Keychain = + mongoose.model('ConsumerKey', ConsumerKey); diff --git a/lib/session.js b/lib/session.js new file mode 100644 index 0000000..6b55f1f --- /dev/null +++ b/lib/session.js @@ -0,0 +1,3 @@ +module.exports.getSession = function (req) { + +}; \ No newline at end of file diff --git a/lib/tie.js b/lib/tie.js new file mode 100644 index 0000000..89e8c3c --- /dev/null +++ b/lib/tie.js @@ -0,0 +1,7 @@ +var consumerkey = require('./consumerkey'); + +consumerkey.tie( + 'default', + 'Q4ibSu9XhXvm21UVDbT4A', + '9wXAUMrwZNaeVJlsf6twNtAAe9Y41XX876ZKsHtuU' +); \ No newline at end of file diff --git a/lib/twitter_auth.js b/lib/twitter_auth.js new file mode 100644 index 0000000..ef833b6 --- /dev/null +++ b/lib/twitter_auth.js @@ -0,0 +1,9 @@ +module.exports = (function () { + function TwitterAuth () { + + } + + + + return TwitterAuth; +})(); \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..9b02081 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "author": "KOBA789 (http://koba789.com/)", + "name": "read_fav_later", + "version": "0.0.0", + "repository": { + "url": "" + }, + "engines": { + "node": "~0.6.6" + }, + "dependencies": { + "mongoose": "*", + "should": "*", + "oauth-revenge": "*", + "router": "*" + }, + "devDependencies": {} +} diff --git a/test/mocha.opts b/test/mocha.opts new file mode 100644 index 0000000..1759fe3 --- /dev/null +++ b/test/mocha.opts @@ -0,0 +1,4 @@ +--require should +--reporter spec +--ui bdd +--growl \ No newline at end of file diff --git a/test/test.coffee b/test/test.coffee new file mode 100644 index 0000000..b35cd5f --- /dev/null +++ b/test/test.coffee @@ -0,0 +1,3 @@ +### +# ユーザー認証 +# \ No newline at end of file