| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- const { waitForDb } = require('../app/src/infrastructure/mongodb')
- const ProjectEntityUpdateHandler = require('../app/src/Features/Project/ProjectEntityUpdateHandler')
- const ProjectEntityHandler = require('../app/src/Features/Project/ProjectEntityHandler')
- const ProjectGetter = require('../app/src/Features/Project/ProjectGetter')
- const Path = require('path')
- const ARGV = process.argv.slice(2)
- const DEVELOPER_USER_ID = ARGV.shift()
- const PROJECT_ID = ARGV.shift()
- const FILE_NAMES_TO_RESTORE = ARGV
- async function main() {
- const project = await ProjectGetter.promises.getProject(PROJECT_ID, {
- deletedDocs: 1,
- })
- const docsToRestore = project.deletedDocs.filter(doc =>
- FILE_NAMES_TO_RESTORE.includes(doc.name)
- )
- for (const deletedDoc of docsToRestore) {
- const doc = await new Promise((resolve, reject) => {
- ProjectEntityHandler.getDoc(
- PROJECT_ID,
- deletedDoc._id,
- {
- include_deleted: true,
- },
- (err, lines, rev, version, ranges) => {
- if (err) return reject(err)
- resolve({ lines, ranges })
- }
- )
- })
- const formattedTimestamp = new Date()
- .toISOString()
- .replace('T', '-')
- .replace(/[^0-9-]/g, '')
- const extension = Path.extname(deletedDoc.name)
- const basename = Path.basename(deletedDoc.name, extension)
- const deletedDocName = `${basename}-${formattedTimestamp}${extension}`
- const newDoc = await new Promise((resolve, reject) => {
- ProjectEntityUpdateHandler.addDocWithRanges(
- PROJECT_ID,
- null,
- `${deletedDocName}`,
- doc.lines,
- doc.ranges,
- DEVELOPER_USER_ID,
- (err, doc, folderId) => {
- if (err) return reject(err)
- resolve({ doc, folderId })
- }
- )
- })
- console.log(newDoc)
- }
- }
- waitForDb()
- .then(main)
- .then(() => {
- process.exit(0)
- })
- .catch(error => {
- console.error(error)
- process.exit(1)
- })
|