Skip to content
Snippets Groups Projects
db.js 2.25 KiB
Newer Older
const logger = require('@pubsweet/logger')
Yogmatee Roochun's avatar
Yogmatee Roochun committed
const FileModel = require('../xpub-model/entities/file/data-access')
Yogmatee Roochun's avatar
Yogmatee Roochun committed
module.exports.createTaggersFiles = async function createTaggersFiles(
  filesArr,
) {
  for (let i = 0; i < filesArr.length; i += 1) {
    /* eslint-disable no-await-in-loop */
    const filedb = await new FileModel(filesArr[i]).save({
      insertMissing: true,
    })
    logger.info(filedb)
  }
}
Yogmatee Roochun's avatar
Yogmatee Roochun committed

Yogmatee Roochun's avatar
Yogmatee Roochun committed
module.exports.upsertFileUrl = async function upsertFileUrl(
Yogmatee Roochun's avatar
Yogmatee Roochun committed
  filesArr,
  manuscriptId,
Yogmatee Roochun's avatar
Yogmatee Roochun committed
) {
  const existingFiles = await FileModel.selectByManIdConvertedFiles(
    manuscriptId,
  )
Yogmatee Roochun's avatar
Yogmatee Roochun committed
  const fileTypesArr = ['tempHTML', 'PMCfinal']
Yogmatee Roochun's avatar
Yogmatee Roochun committed
  for (let i = 0; i < fileTypesArr.length; i += 1) {
    /* eslint-disable no-await-in-loop */
    const newFile = filesArr.find(file => file.type === fileTypesArr[i])
    const existingFile = existingFiles.find(
      file => file.type === fileTypesArr[i],
    )
    if (existingFile) {
      existingFile.url = newFile.url
      const filedb = await FileModel.update(existingFile, userId)
Yogmatee Roochun's avatar
Yogmatee Roochun committed
      logger.info(filedb)
    } else {
      const filedb = await new FileModel(newFile).save({
        insertMissing: true,
      })
      logger.info(filedb)
    }
Yogmatee Roochun's avatar
Yogmatee Roochun committed
module.exports.upsertHtmlPrevFile = async function upsertHtmlPrevFile(
  newFile,
  manuscriptId,
Yogmatee Roochun's avatar
Yogmatee Roochun committed
) {
  const existingFiles = await FileModel.selectByManuscriptId(manuscriptId)

  const existingFile = existingFiles.find(file => file.type === 'source')
  if (existingFile) {
    existingFile.url = newFile.url
    const filedb = await FileModel.update(existingFile, userId)
Yogmatee Roochun's avatar
Yogmatee Roochun committed
    logger.info(filedb)
  } else {
    const filedb = await new FileModel(newFile).save({
      insertMissing: true,
    })
    logger.info(filedb)
  }
}
module.exports.deleteTaggingFiles = async function deleteTaggingFiles(
  manuscriptId,
) {
  const manFiles = await FileModel.selectByManuscriptId(manuscriptId)
  const submissionFilesTypes = ['manuscript', 'figure', 'table', 'supplement']
  const taggingFiles = manFiles.filter(
    el => !submissionFilesTypes.includes(el.type),
  )
  // delete tagging files
  for (let i = 0; i < taggingFiles.length; i += 1) {
    await FileModel.deleteById(taggingFiles[i].id, userId)
  }
  logger.info(`${taggingFiles.length} files deleted.`)
}