@puls-atlas/cli
Version:
The Puls Atlas CLI tool for managing Atlas projects
59 lines • 1.62 kB
JavaScript
import chalk from 'chalk';
import inquirer from 'inquirer';
import { Firestore } from '@google-cloud/firestore';
import { logger, getFirebaserc } from './../../utils/index.js';
const DEFAULT_ROLES = [{
id: 'admin',
data: {
value: 'admin',
label: {
'nl-BE': 'Beheerder',
'en-US': 'Administrator'
}
}
}, {
id: 'user',
data: {
value: 'user',
label: {
'nl-BE': 'Gebruiker',
'en-US': 'User'
}
}
}];
const confirmCreate = async projectId => {
const {
create
} = await inquirer.prompt([{
type: 'confirm',
name: 'create',
default: true,
message: 'Do you want to add the default `admin` and `user` role to the `roles` collection ' + `in project ${chalk.yellow(projectId)}?`
}]);
if (create) {
const spinner = logger.spinner('Adding default roles...');
const firestore = new Firestore({
projectId
});
const roles = firestore.collection('roles');
const batch = firestore.batch();
DEFAULT_ROLES.forEach(role => {
batch.set(roles.doc(role.id), role.data);
});
return batch.commit().then(() => {
spinner.succeed('Default roles added successfully.');
}).catch(() => {
spinner.fail('Failed to add default roles. You can add them manually.');
});
}
return Promise.resolve();
};
export default async () => {
const firebaserc = getFirebaserc();
if (!firebaserc.projects) {
return Promise.reject('No projects found in .firebaserc');
}
await confirmCreate(firebaserc.projects.development);
await confirmCreate(firebaserc.projects.production);
return Promise.resolve();
};