@@ -7,61 +7,44 @@ import {Translation} from "../translations";
77export 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