forest-cli
Version:
The Lumberjacks' toolbelt is the Forest CLI which makes easy to manage your back office application directly from the terminal.
39 lines • 3.08 kB
JavaScript
const agent = require('superagent');
const Context = require('@forestadmin/context');
/**
* @param {{ projectId: number | string }} config
*/
function InvitationManager(config) {
const { assertPresent, authenticator, env } = Context.inject();
assertPresent({ authenticator, env });
/**
* @param {Array<{
* email: string;
* teamId: number | string;
* roleId: number | string;
* permissionLevel: string;
* }>} invitations
*/
this.inviteUsers = async (invitations) => {
const authToken = authenticator.getAuthToken();
const data = invitations.map(invitation => ({
type: 'invitations',
attributes: {
email: invitation.email,
'permission-level': invitation.permissionLevel,
},
relationships: {
team: { data: { type: 'teams', id: String(invitation.teamId) } },
role: { data: { type: 'roles', id: String(invitation.roleId) } },
},
}));
return agent
.post(`${env.FOREST_SERVER_URL}/api/invitations`)
.set('Authorization', `Bearer ${authToken}`)
.set('forest-project-id', config.projectId)
.send({ data })
.then(response => response.body);
};
}
module.exports = InvitationManager;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52aXRhdGlvbi1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2ludml0YXRpb24tbWFuYWdlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDcEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLE1BQU07SUFDL0IsTUFBTSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQy9ELGFBQWEsQ0FBQyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBRXRDOzs7Ozs7O09BT0c7SUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssRUFBQyxXQUFXLEVBQUMsRUFBRTtRQUNyQyxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFL0MsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDMUMsSUFBSSxFQUFFLGFBQWE7WUFDbkIsVUFBVSxFQUFFO2dCQUNWLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztnQkFDdkIsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLGVBQWU7YUFDL0M7WUFDRCxhQUFhLEVBQUU7Z0JBQ2IsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO2dCQUNoRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUU7YUFDakU7U0FDRixDQUFDLENBQUMsQ0FBQztRQUVKLE9BQU8sS0FBSzthQUNULElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsa0JBQWtCLENBQUM7YUFDaEQsR0FBRyxDQUFDLGVBQWUsRUFBRSxVQUFVLFNBQVMsRUFBRSxDQUFDO2FBQzNDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDO2FBQzFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO2FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDIn0=