register or update users based on the vatsim ID
This commit is contained in:
		| @@ -19,7 +19,7 @@ export class AuthService { | ||||
|   ) {} | ||||
|  | ||||
|   async login(code: string): Promise<string> { | ||||
|     const token = await lastValueFrom( | ||||
|     const [token, refreshToken] = await lastValueFrom( | ||||
|       this.httpService | ||||
|         .post( | ||||
|           `${this.config.get<string>( | ||||
| @@ -34,7 +34,10 @@ export class AuthService { | ||||
|           }, | ||||
|         ) | ||||
|         .pipe( | ||||
|           map((response) => response.data.access_token), | ||||
|           map((response) => [ | ||||
|             response.data.access_token, | ||||
|             response.data.refresh_token, | ||||
|           ]), | ||||
|           catchError((err) => { | ||||
|             throw new HttpException(err.response.data, err.response.status); | ||||
|           }), | ||||
| @@ -63,6 +66,31 @@ export class AuthService { | ||||
|     ); | ||||
|  | ||||
|     if (userdata.oauth.token_valid) { | ||||
|       let fullName = 'Private'; | ||||
|       if (userdata.personal !== undefined) { | ||||
|         fullName = userdata.personal.name_full; | ||||
|       } | ||||
|  | ||||
|       this.userModel.findOne({ vatsimId: userdata.cid }).then((user) => { | ||||
|         if (!user) { | ||||
|           this.userModel.create({ | ||||
|             vatsimId: userdata.cid, | ||||
|             fullName, | ||||
|             vatsimToken: token, | ||||
|             vatsimRefreshToken: refreshToken, | ||||
|           }); | ||||
|         } else { | ||||
|           this.userModel.findOneAndUpdate( | ||||
|             { vatsimId: userdata.cid }, | ||||
|             { | ||||
|               fullName, | ||||
|               vatsimToken: token, | ||||
|               vatsimRefreshToken: refreshToken, | ||||
|             }, | ||||
|           ); | ||||
|         } | ||||
|       }); | ||||
|  | ||||
|       const payload = { username: userdata.cid, sub: token }; | ||||
|       return this.jwtService.sign(payload); | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user