Skip to content
Snippets Groups Projects
Commit aece47a3 authored by Alexandru Munteanu's avatar Alexandru Munteanu
Browse files

Merge branch 'faraday-master' of gitlab.coko.foundation:xpub/xpub into faraday-master

parents a9ea10e8 94ee872f
No related branches found
No related tags found
No related merge requests found
const Joi = require('joi')
module.exports = {
manuscripts: Joi.any()
.valid([
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/pdf',
'application/msword',
])
.error(new Error('Only Word documents and PDFs are allowed')),
supplementary: Joi.any(),
coverLetter: Joi.any()
.valid([
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/pdf',
'application/msword',
])
.error(new Error('Only Word documents and PDFs are allowed')),
}
const multer = require('multer')
const multerS3 = require('multer-s3')
const uuid = require('uuid')
const Joi = require('joi')
const _ = require('lodash')
const config = require('config')
const s3Config = _.get(config, 'pubsweet-component-aws-s3')
const uploadValidations = require(s3Config.validations)
const setupMulter = s3 => {
const upload = multer({
......@@ -22,21 +28,16 @@ const setupMulter = s3 => {
}
const validateFile = (req, file, cb) => {
if (
req.body.fileType === 'manuscripts' ||
req.body.fileType === 'coverLetter'
) {
if (
file.mimetype === 'application/pdf' ||
file.mimetype === 'application/msword' ||
file.mimetype ===
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
) {
return cb(null, true)
}
req.fileValidationError = 'Only Word documents and PDFs are allowed'
const fileType = req.body.fileType
const mimetype = file.mimetype
const valid = Joi.validate({ [fileType]: mimetype }, uploadValidations)
if (valid.error) {
req.fileValidationError = valid.error.message
return cb(null, false)
}
return cb(null, true)
}
......
......@@ -31,7 +31,8 @@ export const editModeEnabled = value => {
}
export const requiredFiles = (valus, formValues) => {
if (get(formValues, 'files.manuscripts').length === 0) {
const manuscripts = get(formValues, 'files.manuscripts')
if (manuscripts && manuscripts.length === 0) {
return 'At least one main manuscript file is needed.'
}
return undefined
......
......@@ -46,5 +46,17 @@ module.exports = {
'editoria-typescript': '2',
},
},
publicKeys: ['pubsweet-client', 'authsome', 'validations'],
'pubsweet-component-aws-s3': {
secretAccessKey: process.env.AWS_SECRET_KEY,
accessKeyId: process.env.AWS_ACCESS_KEY,
region: process.env.AWS_REGION,
sender: process.env.PUBSWEET_EMAIL_SENDER || 'dev@mailinator.com',
validations: path.resolve(__dirname, 'upload-validations.js'),
},
publicKeys: [
'pubsweet-client',
'authsome',
'validations',
'pubsweet-component-aws-s3',
],
}
const Joi = require('joi')
module.exports = {
manuscripts: Joi.any()
.valid([
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/pdf',
'application/msword',
])
.error(new Error('Only Word documents and PDFs are allowed')),
supplementary: Joi.any(),
coverLetter: Joi.any()
.valid([
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/pdf',
'application/msword',
])
.error(new Error('Only Word documents and PDFs are allowed')),
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment