Files
automatisch/packages/backend/src/graphql/mutations/create-user.ee.js
2024-01-05 19:08:04 +01:00

39 lines
804 B
JavaScript

import User from '../../models/user.js';
import Role from '../../models/role.js';
const createUser = async (_parent, params, context) => {
context.currentUser.can('create', 'User');
const { fullName, email, password } = params.input;
const existingUser = await User.query().findOne({
email: email.toLowerCase(),
});
if (existingUser) {
throw new Error('User already exists!');
}
const userPayload = {
fullName,
email,
password,
};
try {
context.currentUser.can('update', 'Role');
userPayload.roleId = params.input.role.id;
} catch {
// void
const role = await Role.query().findOne({ key: 'admin' });
userPayload.roleId = role.id;
}
const user = await User.query().insert(userPayload);
return user;
};
export default createUser;