overleaf/services/web/scripts/create_oauth_application.js

51 lines
1.3 KiB
JavaScript
Raw Normal View History

const fs = require('fs')
const { OauthApplication } = require('../app/src/models/OauthApplication')
const parseArgs = require('minimist')
const OError = require('@overleaf/o-error')
const { waitForDb } = require('../app/src/infrastructure/mongodb')
async function _loadInputDocument(inputFilePath) {
console.log(`Loading input from ${inputFilePath}`)
try {
const inputText = await fs.promises.readFile(inputFilePath, 'utf-8')
const inputDocument = JSON.parse(inputText)
return inputDocument
} catch (err) {
throw OError.tag(err, 'error loading input document')
}
}
async function _writeOauthApplicationDocument(doc) {
console.log('Waiting for db...')
await waitForDb()
const oauthApp = new OauthApplication(doc)
console.log(
`Writing document to mongo { name: '${oauthApp.name}', id: '${oauthApp.id}' }`
)
await oauthApp.save()
}
async function main() {
const argv = parseArgs(process.argv.slice(2), {
string: ['file'],
unknown: function (arg) {
console.error('unrecognised argument', arg)
process.exit(1)
},
})
const doc = await _loadInputDocument(argv.file)
await _writeOauthApplicationDocument(doc)
}
if (require.main === module) {
main()
.then(() => {
console.log('Done')
process.exit(0)
})
.catch(err => {
console.error(err)
process.exit(1)
})
}