From 0615286d338ecd241c6043c57c4c4792f098a6a7 Mon Sep 17 00:00:00 2001 From: notnull Date: Sat, 13 Jul 2019 17:40:34 -0400 Subject: [PATCH] fixed story retrieval --- server/api/blockchain.js | 2 +- server/api/stories.js | 6 ++-- src/App.js | 18 ++++++------ src/components/CreateStory/CreateStoryForm.js | 1 - src/components/RetrieveStory/ReadStoryView.js | 2 +- .../RetrieveStory/RetrieveStoryForm.js | 29 +++++++++---------- src/components/RetrieveStory/index.js | 2 +- src/encrypt/decryptString.js | 1 + 8 files changed, 29 insertions(+), 32 deletions(-) diff --git a/server/api/blockchain.js b/server/api/blockchain.js index a38fb7e..1a4e667 100644 --- a/server/api/blockchain.js +++ b/server/api/blockchain.js @@ -15,7 +15,7 @@ router.get('/', async (req, res, next) => { router.get('/:hash', async (req, res, next) => { try { const hash = await Blockchain.findOne({ - where: { hashedStory: req.params.hashedStory }, + where: { hashedStory: req.params.hash }, }) res.status(201).json(hash) diff --git a/server/api/stories.js b/server/api/stories.js index d6b9822..6d8d520 100755 --- a/server/api/stories.js +++ b/server/api/stories.js @@ -12,11 +12,11 @@ router.post('/', async (req, res, next) => { } }) -router.post('/read', async (req, res, next) => { +router.get('/:hash', async (req, res, next) => { try { - const story = await Story.find({ + const story = await Story.findOne({ where: { - hash: req.body.hash, + hashedStory: req.params.hash, }, }) diff --git a/src/App.js b/src/App.js index 0bf7132..a4060ae 100644 --- a/src/App.js +++ b/src/App.js @@ -32,6 +32,7 @@ class App extends React.Component { this.state = initialState this.navigate = this.navigate.bind(this) this.submitStory = this.submitStory.bind(this) + this.fetchStory = this.fetchStory.bind(this) } componentWillMount() { @@ -75,17 +76,16 @@ class App extends React.Component { } } - async fetchStory(encryptionKey, hash) { + async fetchStory(submittedData) { + const { encryptionKey, hash } = submittedData try { - const retrievedStory = await axios.get(`/api/stories/${hash}`) - - const decryptedStory = decryptString( - retrievedStory.encryptedStory, - encryptionKey - ) - return this.setState({ decryptedStory }) + const { data } = await axios.get(API + `/api/stories/${hash}`) + console.log(data) + const decryptedStory = decryptString(data.encryptedStory, encryptionKey) + this.setState({ decryptedStory }) } catch (e) { - return this.setState({ retrievalError: 'Story not found' }) + console.log(e) + this.setState({ retrievalError: 'Story not found.' }) } } diff --git a/src/components/CreateStory/CreateStoryForm.js b/src/components/CreateStory/CreateStoryForm.js index 2fd62f9..21e6534 100644 --- a/src/components/CreateStory/CreateStoryForm.js +++ b/src/components/CreateStory/CreateStoryForm.js @@ -17,7 +17,6 @@ class StoryForm extends React.Component { } handleChange(e) { - console.log(this.state) this.setState({ [e.target.name]: e.target.value }) } diff --git a/src/components/RetrieveStory/ReadStoryView.js b/src/components/RetrieveStory/ReadStoryView.js index 2f5612d..c4319d3 100644 --- a/src/components/RetrieveStory/ReadStoryView.js +++ b/src/components/RetrieveStory/ReadStoryView.js @@ -4,7 +4,7 @@ const ReadStoryView = props => { return (

{props.eventDate}

-

{props.eventDetails}

+

{props.decryptedStory}

) } diff --git a/src/components/RetrieveStory/RetrieveStoryForm.js b/src/components/RetrieveStory/RetrieveStoryForm.js index 3d0fdc7..dfb54be 100644 --- a/src/components/RetrieveStory/RetrieveStoryForm.js +++ b/src/components/RetrieveStory/RetrieveStoryForm.js @@ -3,7 +3,7 @@ import React from 'react' //----------------------------------------------// const initialState = { - password: '', + encryptionKey: '', hash: '', } @@ -21,15 +21,7 @@ class RetrieveStoryForm extends React.Component { handleSubmit(e) { e.preventDefault() - try { - const encryptedStory = this.props.fetchStory( - this.state.password, - this.state.hash - ) - this.props.navigate('read') - } catch (e) { - console.log(e) - } + this.props.fetchStory({ ...this.state }) } render() { return ( @@ -38,18 +30,18 @@ class RetrieveStoryForm extends React.Component {

Enter your secret key and your hash below.

-
@@ -77,6 +69,11 @@ class RetrieveStoryForm extends React.Component {
+ {this.props.retrievalError ? ( +
{this.props.retrievalError}
+ ) : ( +
+ )}
) } diff --git a/src/components/RetrieveStory/index.js b/src/components/RetrieveStory/index.js index 3062666..3bb9c5f 100644 --- a/src/components/RetrieveStory/index.js +++ b/src/components/RetrieveStory/index.js @@ -3,7 +3,7 @@ import ReadStoryView from './ReadStoryView' import RetrieveStoryForm from './RetrieveStoryForm' const ReadStory = props => { - if (props.retrievedStory) return + if (props.decryptedStory) return return } diff --git a/src/encrypt/decryptString.js b/src/encrypt/decryptString.js index f811bc9..cd8b3c1 100644 --- a/src/encrypt/decryptString.js +++ b/src/encrypt/decryptString.js @@ -1,3 +1,4 @@ +const crypto = require('crypto') const ALGORITHM_NAME = 'aes-128-gcm' const ALGORITHM_NONCE_SIZE = 12 const ALGORITHM_TAG_SIZE = 16