diff options
Diffstat (limited to 'bucky/app/federate.js')
| -rw-r--r-- | bucky/app/federate.js | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/bucky/app/federate.js b/bucky/app/federate.js deleted file mode 100644 index 51b34f6..0000000 --- a/bucky/app/federate.js +++ /dev/null @@ -1,85 +0,0 @@ -var fetch = require('node-fetch') -var db = require('../db') - -module.exports = { - - route: (app) => { - app.put('/raw/import/thread/', importRaw('thread', 'Thread'), (req, res) => res.send({ status: 'ok', el: res.el })) - app.put('/raw/import/keyword/', importRaw('keyword', 'Keyword'), (req, res) => res.send({ status: 'ok', el: res.el })) - app.put('/raw/import/file/', importRaw('file', 'File'), (req, res) => res.send({ status: 'ok', el: res.el })) - app.put('/raw/import/comment/', importRaw('comment', 'Comment'), (req, res) => res.send({ status: 'ok', el: res.el })) - - app.get('/raw/export/thread/:id', exportThread, (req, res) => res.send({ status: 'ok' })) - app.get('/raw/export/keyword/:keyword', exportKeyword, (req, res) => res.send({ status: 'ok' })) - - function importRaw (type, model) { - return (req, res, next) => { - console.log('importing', type, req.body.id) - delete req.body.id - db[model].forge(req.body).save().then((el) => { - res.el = el; - next() - }).catch(e => { - console.error(e) - next() - }) - } - } - function exportKeyword (req, res, next) { - console.log('export keyword', req.params.keyword) - db.getKeyword(req.params.keyword).then(keyword => { - send("keyword", keyword) - return db.getThreadsForKeyword(req.params.keyword) - }).then(threads => { - var promises = threads.map(thread => { - exportThread({ params: { id: thread.get('id') } }, res, function(){}) - }) - return Promise.all(promises) - }).then( () => { - next() - }) - } - function exportThread (req, res, next) { - var thread_id - return db.getThread(req.params.id).then(thread => { - return send("thread", thread) - }).then(json => { - thread_id = json.el.id - console.log('got thread id', thread_id) - return db.getCommentsForThread(req.params.id) - }).then(comments => { - var promises = comments.map(comment => { - comment.set('thread', thread_id) - send("comment", comment) - }) - return Promise.all(promises) - }).then( () => { - return db.getFilesForThread(req.params.id) - }).then(files => { - var promises = files.map(file => { - file.set('thread', thread_id) - send("file", file) - }) - return promises - }).then( () => { - next() - }).catch(e => { - console.error(e) - next() - }) - } - function send(type, data){ - console.log('sending', type, data.get('id')) - var json = data.toJSON() - return fetch("https://bucky.asdf.us/raw/import/" + type, { - method: 'PUT', - body: JSON.stringify(json), - headers: { - 'Content-Type': 'application/json', - 'Accept': 'application/json', - }, - }).then((res) => {return res.json()}) - } - - } -}
\ No newline at end of file |
