@r1tsu/payload
Version:
42 lines (41 loc) • 1.13 kB
JavaScript
import { ValidationError } from '../../../errors/index.js';
import { generatePasswordSaltHash } from './generatePasswordSaltHash.js';
export const registerLocalStrategy = async ({ collection, doc, password, payload, req })=>{
const existingUser = await payload.find({
collection: collection.slug,
depth: 0,
limit: 1,
pagination: false,
req,
where: {
email: {
equals: doc.email
}
}
});
if (existingUser.docs.length > 0) {
throw new ValidationError([
{
field: 'email',
message: 'A user with the given email is already registered'
}
]);
}
const { hash, salt } = await generatePasswordSaltHash({
password
});
const sanitizedDoc = {
...doc
};
if (sanitizedDoc.password) delete sanitizedDoc.password;
return payload.db.create({
collection: collection.slug,
data: {
...sanitizedDoc,
hash,
salt
},
req
});
};
//# sourceMappingURL=register.js.map