count_files_in_projects.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const readline = require('readline')
  2. const { waitForDb } = require('../app/src/infrastructure/mongodb')
  3. const ProjectEntityHandler = require('../app/src/Features/Project/ProjectEntityHandler')
  4. const ProjectGetter = require('../app/src/Features/Project/ProjectGetter')
  5. const Errors = require('../app/src/Features/Errors/Errors')
  6. /* eslint-disable no-console */
  7. async function countFiles() {
  8. const rl = readline.createInterface({
  9. input: process.stdin,
  10. })
  11. for await (const projectId of rl) {
  12. try {
  13. const project = await ProjectGetter.promises.getProject(projectId)
  14. if (!project) {
  15. throw new Errors.NotFoundError('project not found')
  16. }
  17. const {
  18. files,
  19. docs,
  20. } = await ProjectEntityHandler.promises.getAllEntitiesFromProject(project)
  21. console.error(
  22. projectId,
  23. files.length,
  24. (project.deletedFiles && project.deletedFiles.length) || 0,
  25. docs.length,
  26. (project.deletedDocs && project.deletedDocs.length) || 0
  27. )
  28. } catch (err) {
  29. if (err instanceof Errors.NotFoundError) {
  30. console.error(projectId, 'NOTFOUND')
  31. } else {
  32. console.log(projectId, 'ERROR', err.name, err.message)
  33. }
  34. }
  35. }
  36. }
  37. waitForDb()
  38. .then(countFiles)
  39. .then(() => {
  40. process.exit(0)
  41. })
  42. .catch(err => {
  43. console.log('Aiee, something went wrong!', err)
  44. process.exit(1)
  45. })