delete_projects_from_filestore.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const readline = require('readline')
  2. const { Project } = require('../app/src/models/Project')
  3. const FileStoreHandler = require('../app/src/Features/FileStore/FileStoreHandler')
  4. const { DeletedProject } = require('../app/src/models/DeletedProject')
  5. /* eslint-disable no-console */
  6. async function deleteFiles() {
  7. const rl = readline.createInterface({
  8. input: process.stdin
  9. })
  10. for await (const projectId of rl) {
  11. try {
  12. const projectCount = await Project.count({ _id: projectId }).exec()
  13. if (projectCount > 0) {
  14. throw new Error('found an existing project - refusing')
  15. }
  16. const count = await DeletedProject.count({
  17. 'deleterData.deletedProjectId': projectId,
  18. project: { $ne: null }
  19. }).exec()
  20. if (count > 0) {
  21. throw new Error('found an existing deleted project - refusing')
  22. }
  23. await FileStoreHandler.promises.deleteProject(projectId)
  24. console.error(projectId, 'OK')
  25. } catch (err) {
  26. console.error(projectId, 'ERROR', err.name, err.message)
  27. }
  28. }
  29. }
  30. deleteFiles()
  31. .then(() => {
  32. process.exit(0)
  33. })
  34. .catch(err => {
  35. console.log('Aiee, something went wrong!', err)
  36. process.exit(1)
  37. })