From ad9684acd9d4a7a6f95266b07e945aa543fbbb2e Mon Sep 17 00:00:00 2001 From: David Erwin Date: Wed, 25 Jan 2017 14:08:19 -0500 Subject: [PATCH 1/6] Create load stream by id route --- .../src/graphql/queries/index.js | 15 ++++++-- routes/assets/index.js | 31 +++++++++++++++++ routes/index.js | 8 +---- views/article.ejs | 34 +++++++++++++------ 4 files changed, 67 insertions(+), 21 deletions(-) create mode 100644 routes/assets/index.js diff --git a/client/coral-embed-stream/src/graphql/queries/index.js b/client/coral-embed-stream/src/graphql/queries/index.js index ae01ea9f4..221d78c4d 100644 --- a/client/coral-embed-stream/src/graphql/queries/index.js +++ b/client/coral-embed-stream/src/graphql/queries/index.js @@ -1,9 +1,18 @@ import {graphql} from 'react-apollo'; import STREAM_QUERY from './streamQuery.graphql'; -import pym from 'coral-framework/PymConnection'; -let url = pym.parentUrl.split('#')[0] || 'http://localhost:3000/'; +function getQueryVariable(variable) { + let query = window.location.search.substring(1); + let vars = query.split('&'); + for (let i = 0; i < vars.length; i++) { + let pair = vars[i].split('='); + if (decodeURIComponent(pair[0]) === variable) { + return decodeURIComponent(pair[1]); + } + } + console.log('Query variable %s not found', variable); +} export const queryStream = graphql(STREAM_QUERY, { - options: {variables: {asset_url: url}} + options: {variables: {asset_url: getQueryVariable('asset_url')}} }); diff --git a/routes/assets/index.js b/routes/assets/index.js new file mode 100644 index 000000000..46ad378e5 --- /dev/null +++ b/routes/assets/index.js @@ -0,0 +1,31 @@ +const express = require('express'); +const router = express.Router(); + +const Assets = require('../../services/assets'); + +const body = 'Lorem ipsum dolor sponge amet, consectetur adipiscing clam. Ut lobortis sollicitudin pillar a ornare. Curabitur dignissim vestibulum cay non rhoncus. Cras laoreet ante vel nunc hendrerit, shelf imperdiet neque egestas. Suspendisse aliquet iaculis fermentum. Talk volutpat, tellus posuere laoreet consequat, mi lacus laoreet massa, sed vehicula mauris velit non lectus. Integer non trust nec neque congue faucibus porttitor sit amet elkhorn.'; + +router.get('/id/:asset_id', (req, res, next) => { + + return Assets.findById(req.params.asset_id) + .then(asset => { + res.render('article', { + title: asset.title, + asset_url: asset.url, + body: '', + basePath: '/client/embed/stream' + }); + }) + .catch((err) => next(err)); +}); + +router.get('/title/:asset_title', (req, res) => { + return res.render('article', { + title: req.params.asset_title.split('-').join(' '), + asset_url: '', + body: body, + basePath: '/client/embed/stream' + }); +}); + +module.exports = router; diff --git a/routes/index.js b/routes/index.js index 9ab0dff14..6684f5676 100644 --- a/routes/index.js +++ b/routes/index.js @@ -4,6 +4,7 @@ const router = express.Router(); router.use('/api/v1', require('./api')); router.use('/admin', require('./admin')); router.use('/embed', require('./embed')); +router.use('/assets', require('./assets')); router.get('/', (req, res) => { return res.render('article', { @@ -12,11 +13,4 @@ router.get('/', (req, res) => { }); }); -router.get('/assets/:asset_title', (req, res) => { - return res.render('article', { - title: req.params.asset_title.split('-').join(' '), - basePath: '/client/embed/stream' - }); -}); - module.exports = router; diff --git a/views/article.ejs b/views/article.ejs index c63acc62b..f5f56420e 100644 --- a/views/article.ejs +++ b/views/article.ejs @@ -20,15 +20,7 @@

<%= title %>

-

- Lorem ipsum dolor sponge amet, consectetur adipiscing clam. - Ut lobortis sollicitudin pillar a ornare. Curabitur dignissim - vestibulum cay non rhoncus. Cras laoreet ante vel nunc hendrerit, - shelf imperdiet neque egestas. Suspendisse aliquet iaculis fermentum. - Talk volutpat, tellus posuere laoreet consequat, mi lacus laoreet massa, - sed vehicula mauris velit non lectus. Integer non trust nec neque congue - faucibus porttitor sit amet elkhorn. -

+

<%= body %>

Visit the moderation console

@@ -36,13 +28,33 @@