lint, tidy up and some simplification

This commit is contained in:
Martin McKeaveney 2020-09-23 17:29:32 +01:00
parent ccebe283cc
commit fd97c14a50
4 changed files with 51 additions and 80 deletions

View File

@ -28,7 +28,7 @@ export const getBackendUiStore = () => {
},
},
records: {
save: record =>
save: () =>
store.update(state => {
state.selectedView = state.selectedView
return state

View File

@ -31,8 +31,6 @@ exports.uploadFile = async function(ctx) {
? Array.from(ctx.request.files.file)
: [ctx.request.files.file]
let uploads = []
const attachmentsPath = resolve(
budibaseAppsDir(),
ctx.user.appId,
@ -47,7 +45,7 @@ exports.uploadFile = async function(ctx) {
},
})
uploads = files.map(file => {
const uploads = files.map(file => {
const fileExtension = [...file.name.split(".")].pop()
const processedFileName = `${uuid.v4()}.${fileExtension}`
@ -59,51 +57,63 @@ exports.uploadFile = async function(ctx) {
s3,
})
})
} else {
uploads = processLocalFileUploads(files, attachmentsPath)
// uploads = files.map(file => {
// const fileExtension = [...file.name.split(".")].pop()
// const processedFileName = `${uuid.v4()}.${fileExtension}`
// return fileProcessor.process({
// format: file.format,
// type: file.type,
// name: file.name,
// size: file.size,
// path: file.path,
// processedFileName,
// extension: fileExtension,
// outputPath: `${attachmentsPath}/${processedFileName}`,
// url: `/attachments/${processedFileName}`,
// })
// })
ctx.body = await Promise.all(uploads)
return
}
const responses = await Promise.all(uploads)
ctx.body = responses
ctx.body = await processLocalFileUploads({
files,
outputPath: attachmentsPath,
instanceId: ctx.user.instanceId,
})
}
function processLocalFileUploads(files, attachmentsPath) {
async function processLocalFileUploads({ files, outputPath, instanceId }) {
// create attachments dir if it doesnt exist
!fs.existsSync(attachmentsPath) &&
fs.mkdirSync(attachmentsPath, { recursive: true })
!fs.existsSync(outputPath) && fs.mkdirSync(outputPath, { recursive: true })
const filesToProcess = files.map(file => {
const fileExtension = [...file.name.split(".")].pop()
// filenames converted to UUIDs so they are unique
const processedFileName = `${uuid.v4()}.${fileExtension}`
console.log(file)
return {
...file,
processedFileName,
extension: fileExtension,
outputPath: join(attachmentsPath, processedFileName),
outputPath: join(outputPath, processedFileName),
url: join("/attachments", processedFileName),
}
})
return filesToProcess.map(fileProcessor.process)
const fileProcessOperations = filesToProcess.map(fileProcessor.process)
const processedFiles = await Promise.all(fileProcessOperations)
let pendingFileUploads
// local document used to track which files need to be uploaded
// db.get throws an error if the document doesn't exist
// need to use a promise to default
const db = new CouchDB(instanceId)
await db
.get("_local/fileuploads")
.then(data => {
pendingFileUploads = data
})
.catch(() => {
pendingFileUploads = { _id: "_local/fileuploads", uploads: [] }
})
pendingFileUploads.uploads = [
...processedFiles,
...pendingFileUploads.uploads,
]
await db.put(pendingFileUploads)
return processedFiles
}
exports.performLocalFileProcessing = async function(ctx) {
@ -115,55 +125,12 @@ exports.performLocalFileProcessing = async function(ctx) {
"attachments"
)
const fileProcessOperations = processLocalFileUploads(
files,
processedFileOutputPath
)
// // create attachments dir if it doesnt exist
// !fs.existsSync(attachmentsPath) &&
// fs.mkdirSync(attachmentsPath, { recursive: true })
// const filesToProcess = files.map(file => {
// const fileExtension = [...file.path.split(".")].pop()
// // filenames converted to UUIDs so they are unique
// const processedFileName = `${uuid.v4()}.${fileExtension}`
// return {
// ...file,
// processedFileName,
// extension: fileExtension,
// outputPath: join(attachmentsPath, processedFileName),
// url: join("/attachments", processedFileName),
// }
// })
// const fileProcessOperations = filesToProcess.map(fileProcessor.process)
try {
const processedFiles = await Promise.all(fileProcessOperations)
let pendingFileUploads
// local document used to track which files need to be uploaded
// db.get throws an error if the document doesn't exist
// need to use a promise to default
const db = new CouchDB(ctx.user.instanceId)
await db
.get("_local/fileuploads")
.then(data => {
pendingFileUploads = data
})
.catch(() => {
pendingFileUploads = { _id: "_local/fileuploads", uploads: [] }
})
pendingFileUploads.uploads = [
...processedFiles,
...pendingFileUploads.uploads,
]
await db.put(pendingFileUploads)
ctx.body = processedFiles
ctx.body = await processLocalFileUploads({
files,
outputPath: processedFileOutputPath,
instanceId: ctx.user.instanceId,
})
} catch (err) {
ctx.throw(500, err)
}

View File

@ -1,6 +1,10 @@
const apiCall = method => async (url, body, headers = {
const apiCall = method => async (
url,
body,
headers = {
"Content-Type": "application/json",
}) => {
}
) => {
const response = await fetch(url, {
method: method,
body: body && JSON.stringify(body),

View File

@ -1,5 +1,5 @@
<script>
import { FILE_TYPES } from "./fileTypes";
import { FILE_TYPES } from "./fileTypes"
export let files
export let height = "70"