Skip to content

Commit e325528

Browse files
committed
users refactor
1 parent b478a40 commit e325528

File tree

2 files changed

+29
-48
lines changed

2 files changed

+29
-48
lines changed

src/services/auth.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,13 @@ export const AuthServices = {
1414
username: username,
1515
password: password
1616
};
17-
18-
return UserServices.addUser(data)
19-
.then((user: User) => {
20-
const token = new Token(data);
21-
return AuthServices.setToken(user, token);
22-
})
17+
const user = await UserServices.addUser(data)
2318
.catch((err: Error) => {
2419
throw err;
2520
});
21+
const token = new Token(data);
22+
token.userId = user.id;
23+
return AuthServices.setToken(user, token);
2624
},
2725

2826
login: async (username: string, password: string): Promise<Token> => {

src/services/user.ts

Lines changed: 25 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -7,61 +7,44 @@ import {Translation} from "../translations";
77
export const UserServices = {
88

99
isTokenValid: async (username: string, token: string): Promise<boolean> => {
10-
return DbClient.findOne(Config.database.collections.tokens, {username: username})
11-
.then((userToken: Token) => {
12-
const now = moment.utc().format();
13-
if (userToken &&
14-
userToken.hash === token &&
15-
userToken.expiration > now &&
16-
userToken.creation <= now) return true;
17-
else throw new Error(Translation[Config.language].INVALID_TOKEN);
18-
});
10+
const userToken: Token = await DbClient.findOne(Config.database.collections.tokens, {username: username});
11+
const now = moment.utc().format();
12+
if (userToken &&
13+
userToken.hash === token &&
14+
userToken.expiration > now &&
15+
userToken.creation <= now) return true;
16+
else throw new Error(Translation[Config.language].INVALID_TOKEN);
1917
},
2018

2119
addUser: async (data: any): Promise<User> => {
2220
if (_.isNil(data) || _.isNil(data.username) || _.isNil(data.password)) throw new Error(Translation[Config.language].EMPTY_DATA);
23-
const user = new User(data);
24-
const password = new Password(data);
25-
return DbClient.insertOneIfNotExist(Config.database.collections.users, {username: user.username}, user.store())
26-
.then(() => {
27-
return DbClient.insertOneIfNotExist(Config.database.collections.passwords, {userId: user.id}, password)
28-
.then(() => {
29-
return user;
30-
});
31-
});
21+
let user: User = new User(data);
22+
user = new User(await DbClient.insertOneIfNotExist(Config.database.collections.users, {username: user.username}, user.store()));
23+
const password: Password = new Password(data);
24+
password.userId = user.id;
25+
await DbClient.insertOneIfNotExist(Config.database.collections.passwords, {userId: user.id}, password);
26+
return user;
3227
},
3328

34-
getUsers: (): Promise<User[]> => {
35-
return DbClient.find(Config.database.collections.users)
36-
.then((data: any[]) => {
37-
return data.map((userData: any) => {
38-
return new User(userData);
39-
});
29+
getUsers: async (): Promise<User[]> => {
30+
return (await DbClient.find(Config.database.collections.users))
31+
.map((userData: any) => {
32+
return new User(userData);
4033
});
4134
},
4235

43-
getUser: (username: string): Promise<User> => {
44-
return DbClient.findOne(Config.database.collections.users, {username: username})
45-
.then((data: any) => {
46-
return new User(data);
47-
});
36+
getUser: async (username: string): Promise<User> => {
37+
return new User((await DbClient.findOne(Config.database.collections.users, {username: username})));
4838
},
4939

50-
updateUser: (username: string, update: string): Promise<User> => {
51-
return DbClient.findOneAndUpdate(Config.database.collections.users, {username: username}, update)
52-
.then((data: any) => {
53-
return new User(data);
54-
});
40+
updateUser: async (username: string, update: string): Promise<User> => {
41+
return new User(await (DbClient.findOneAndUpdate(Config.database.collections.users, {username: username}, update)))
5542
},
5643

57-
deleteUser: (username: string): Promise<void> => {
58-
return DbClient.findOneAndDelete(Config.database.collections.users, {username: username})
59-
.then(() => {
60-
UserServices.deletePassword(username)
61-
.then(() => {
62-
return UserServices.deleteToken(username);
63-
});
64-
});
44+
deleteUser: async (username: string): Promise<void> => {
45+
await DbClient.findOneAndDelete(Config.database.collections.users, {username: username});
46+
await UserServices.deletePassword(username);
47+
await UserServices.deleteToken(username);
6548
},
6649

6750
getToken: async (username: string): Promise<Token> => {

0 commit comments

Comments
 (0)