When creating a account the email field is now optional.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
class User {
|
class User {
|
||||||
constructor(username, email) {
|
constructor(username, email=undefined) {
|
||||||
this.username = username;
|
this.username = username;
|
||||||
this.email = email;
|
this.email = email;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ class UserRepository {
|
|||||||
this.database = database || establishedDatabase;
|
this.database = database || establishedDatabase;
|
||||||
this.queries = {
|
this.queries = {
|
||||||
read: 'select * from user where lower(user_name) = lower(?)',
|
read: 'select * from user where lower(user_name) = lower(?)',
|
||||||
create: 'insert into user (user_name, email) values(?, ?)',
|
create: 'insert into user (user_name) values (?)',
|
||||||
change: 'update user set password = ? where user_name = ?',
|
change: 'update user set password = ? where user_name = ?',
|
||||||
retrieveHash: 'select * from user where user_name = ?',
|
retrieveHash: 'select * from user where user_name = ?',
|
||||||
};
|
};
|
||||||
@@ -20,13 +20,10 @@ class UserRepository {
|
|||||||
create(user) {
|
create(user) {
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
.then(() => this.database.get(this.queries.read, user.username))
|
.then(() => this.database.get(this.queries.read, user.username))
|
||||||
.then(row => assert.equal(row, undefined))
|
.then(() => this.database.run(this.queries.create, user.username))
|
||||||
.then(() => this.database.run(this.queries.create, [user.username, user.email]))
|
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
if (error.message.endsWith('email')) {
|
if (error.name === 'AssertionError' || error.message.endsWith('user_name')) {
|
||||||
throw new Error('That email is already taken');
|
throw new Error('That username is already registered');
|
||||||
} else if (error.name === 'AssertionError' || error.message.endsWith('user_name')) {
|
|
||||||
throw new Error('That username is already taken');
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ class UserSecurity {
|
|||||||
createNewUser(user, clearPassword) {
|
createNewUser(user, clearPassword) {
|
||||||
if (user.username.trim() === '') {
|
if (user.username.trim() === '') {
|
||||||
throw new Error('The username is empty.');
|
throw new Error('The username is empty.');
|
||||||
} else if (user.email.trim() === '') {
|
|
||||||
throw new Error('The email is empty.');
|
|
||||||
} else if (clearPassword.trim() === '') {
|
} else if (clearPassword.trim() === '') {
|
||||||
throw new Error('The password is empty.');
|
throw new Error('The password is empty.');
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user