| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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 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 newDoc = await new Promise((resolve, reject) => {
- ProjectEntityUpdateHandler.addDocWithRanges(
- PROJECT_ID,
- null,
- `${new Date().toISOString().replace(/:/g, '-')}-${deletedDoc.name}`,
- 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)
- })
|