LinkedFilesHandler.coffee 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. LinkedFilesErrors = require './LinkedFilesErrors'
  2. FileWriter = require '../../infrastructure/FileWriter'
  3. EditorController = require '../Editor/EditorController'
  4. ProjectLocator = require '../Project/ProjectLocator'
  5. _ = require 'underscore'
  6. module.exports = LinkedFilesHandler =
  7. getFileById: (project_id, file_id, callback=(err, file)->) ->
  8. ProjectLocator.findElement {
  9. project_id,
  10. element_id: file_id,
  11. type: 'file'
  12. }, (err, file, path, parentFolder) ->
  13. return callback(err) if err?
  14. callback(null, file, path, parentFolder)
  15. importFromStream: (
  16. project_id,
  17. readStream,
  18. linkedFileData,
  19. name,
  20. parent_folder_id,
  21. user_id,
  22. callback=(err, file)->
  23. ) ->
  24. callback = _.once(callback)
  25. FileWriter.writeStreamToDisk project_id, readStream, (err, fsPath) ->
  26. return callback(err) if err?
  27. EditorController.upsertFile project_id,
  28. parent_folder_id,
  29. name,
  30. fsPath,
  31. linkedFileData,
  32. "upload",
  33. user_id,
  34. (err, file) =>
  35. return callback(err) if err?
  36. callback(null, file)
  37. importContent: (
  38. project_id,
  39. content,
  40. linkedFileData,
  41. name,
  42. parent_folder_id,
  43. user_id,
  44. callback=(err, file)->
  45. ) ->
  46. callback = _.once(callback)
  47. FileWriter.writeContentToDisk project_id, content, (err, fsPath) ->
  48. return callback(err) if err?
  49. EditorController.upsertFile project_id,
  50. parent_folder_id,
  51. name,
  52. fsPath,
  53. linkedFileData,
  54. "upload",
  55. user_id,
  56. (err, file) =>
  57. return callback(err) if err?
  58. callback(null, file)