Browse Source

✨ lint, tidy up and some simplification

master
Martin McKeaveney 6 years ago
parent
commit
fd97c14a50
  1. 2
      packages/builder/src/builderStore/store/backend.js
  2. 121
      packages/server/src/api/controllers/static.js
  3. 8
      packages/standard-components/src/api.js
  4. 2
      packages/standard-components/src/attachments/AttachmentList.svelte

2
packages/builder/src/builderStore/store/backend.js

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

121
packages/server/src/api/controllers/static.js

@ -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}`,
// })
// })
}
const responses = await Promise.all(uploads)
ctx.body = await Promise.all(uploads)
return
}
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)
}

8
packages/standard-components/src/api.js

@ -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),

2
packages/standard-components/src/attachments/AttachmentList.svelte

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

Loading…
Cancel
Save