From acf4641795e229b05fafac7db1c20fb55bad52c3 Mon Sep 17 00:00:00 2001
From: Alexandru Munteanu <alexandru.munteanu@thinslices.com>
Date: Tue, 30 Jan 2018 14:50:53 +0200
Subject: [PATCH] Send file type to upload S3

---
 .../component-wizard/src/components/Files.js  | 12 ++++++++--
 packages/component-wizard/src/redux/files.js  | 22 +++++++++++++++----
 2 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/packages/component-wizard/src/components/Files.js b/packages/component-wizard/src/components/Files.js
index 7b1b6fbe0..e3c0dabf8 100644
--- a/packages/component-wizard/src/components/Files.js
+++ b/packages/component-wizard/src/components/Files.js
@@ -102,7 +102,7 @@ export default compose(
       project,
       version,
     }) => type => file => {
-      uploadFile(file).then(fileResponse => {
+      uploadFile(file, type).then(fileResponse => {
         setFiles([...files[type], fileResponse], type)
         updateFragment(project, {
           submitted: new Date(),
@@ -119,8 +119,16 @@ export default compose(
     moveItem: ({ setFiles, files }) => type => (dragIndex, hoverIndex) => {
       setFiles(SortableList.moveItem(files[type], dragIndex, hoverIndex), type)
     },
-    removeFile: () => type => name => e => {
+    removeFile: ({
+      setFiles,
+      files,
+      deleteFile,
+      project,
+      version,
+      updateFragment,
+    }) => type => id => e => {
       e.preventDefault()
+
       // changeFiles(prev => ({
       //   ...prev,
       //   [type]: prev[type].filter(f => f.name !== name),
diff --git a/packages/component-wizard/src/redux/files.js b/packages/component-wizard/src/redux/files.js
index 82f8089e8..795b5ab1e 100644
--- a/packages/component-wizard/src/redux/files.js
+++ b/packages/component-wizard/src/redux/files.js
@@ -1,4 +1,4 @@
-import request from 'pubsweet-client/src/helpers/api'
+import request, { remove } from 'pubsweet-client/src/helpers/api'
 
 const initialState = {
   isFetching: false,
@@ -14,6 +14,10 @@ const UPLOAD_REQUEST = 'files/UPLOAD_REQUEST'
 const UPLOAD_FAILURE = 'files/UPLOAD_FAILURE'
 const UPLOAD_SUCCESS = 'files/UPLOAD_SUCCESS'
 
+const REMOVE_REQUEST = 'files/REMOVE_REQUEST'
+const REMOVE_FAILURE = 'files/REMOVE_FAILURE'
+const REMOVE_SUCCESS = 'files/REMOVE_SUCCESS'
+
 const SET_FILES = 'files/SET_FILES'
 
 export const setFiles = (files, fileType) => ({
@@ -35,9 +39,10 @@ const uploadSuccess = () => ({
   type: UPLOAD_SUCCESS,
 })
 
-const createFileData = file => {
+const createFileData = (file, type) => {
   const data = new FormData()
   data.append('file', file)
+  data.append('fileType', type)
 
   return {
     method: 'POST',
@@ -48,11 +53,15 @@ const createFileData = file => {
   }
 }
 
+const removeRequest = () => ({
+  type: REMOVE_REQUEST,
+})
+
 export const getFiles = state => state.files.files
 
-export const uploadFile = file => dispatch => {
+export const uploadFile = (file, type) => dispatch => {
   dispatch(uploadRequest())
-  return request('/aws-upload', createFileData(file))
+  return request('/aws-upload', createFileData(file, type))
     .then(r => {
       dispatch(uploadSuccess())
       return r
@@ -60,6 +69,11 @@ export const uploadFile = file => dispatch => {
     .catch(err => dispatch(uploadFailure(err.message)))
 }
 
+export const deleteFile = fileId => dispatch => {
+  dispatch(removeRequest())
+  return remove(`/aws-delete/${fileId}`)
+}
+
 export default (state = initialState, action) => {
   switch (action.type) {
     case UPLOAD_REQUEST:
-- 
GitLab