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