| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- /* eslint-disable
- camelcase,
- n/handle-callback-err,
- max-len,
- no-unused-vars,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS102: Remove unnecessary code created because of implicit returns
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- let LinkedFilesHandler
- const FileWriter = require('../../infrastructure/FileWriter')
- const EditorController = require('../Editor/EditorController')
- const ProjectLocator = require('../Project/ProjectLocator')
- const { Project } = require('../../models/Project')
- const ProjectGetter = require('../Project/ProjectGetter')
- const _ = require('underscore')
- const {
- ProjectNotFoundError,
- V1ProjectNotFoundError,
- BadDataError,
- } = require('./LinkedFilesErrors')
- module.exports = LinkedFilesHandler = {
- getFileById(project_id, file_id, callback) {
- if (callback == null) {
- callback = function () {}
- }
- return ProjectLocator.findElement(
- {
- project_id,
- element_id: file_id,
- type: 'file',
- },
- function (err, file, path, parentFolder) {
- if (err != null) {
- return callback(err)
- }
- return callback(null, file, path, parentFolder)
- }
- )
- },
- getSourceProject(data, callback) {
- if (callback == null) {
- callback = function () {}
- }
- const projection = { _id: 1, name: 1 }
- if (data.v1_source_doc_id != null) {
- return Project.findOne(
- { 'overleaf.id': data.v1_source_doc_id },
- projection,
- function (err, project) {
- if (err != null) {
- return callback(err)
- }
- if (project == null) {
- return callback(new V1ProjectNotFoundError())
- }
- return callback(null, project)
- }
- )
- } else if (data.source_project_id != null) {
- return ProjectGetter.getProject(
- data.source_project_id,
- projection,
- function (err, project) {
- if (err != null) {
- return callback(err)
- }
- if (project == null) {
- return callback(new ProjectNotFoundError())
- }
- return callback(null, project)
- }
- )
- } else {
- return callback(new BadDataError('neither v1 nor v2 id present'))
- }
- },
- importFromStream(
- project_id,
- readStream,
- linkedFileData,
- name,
- parent_folder_id,
- user_id,
- callback
- ) {
- if (callback == null) {
- callback = function () {}
- }
- callback = _.once(callback)
- return FileWriter.writeStreamToDisk(
- project_id,
- readStream,
- function (err, fsPath) {
- if (err != null) {
- return callback(err)
- }
- return EditorController.upsertFile(
- project_id,
- parent_folder_id,
- name,
- fsPath,
- linkedFileData,
- 'upload',
- user_id,
- (err, file) => {
- if (err != null) {
- return callback(err)
- }
- return callback(null, file)
- }
- )
- }
- )
- },
- importContent(
- project_id,
- content,
- linkedFileData,
- name,
- parent_folder_id,
- user_id,
- callback
- ) {
- if (callback == null) {
- callback = function () {}
- }
- callback = _.once(callback)
- return FileWriter.writeContentToDisk(
- project_id,
- content,
- function (err, fsPath) {
- if (err != null) {
- return callback(err)
- }
- return EditorController.upsertFile(
- project_id,
- parent_folder_id,
- name,
- fsPath,
- linkedFileData,
- 'upload',
- user_id,
- (err, file) => {
- if (err != null) {
- return callback(err)
- }
- return callback(null, file)
- }
- )
- }
- )
- },
- }
|