Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | 8x 8x 8x 8x 8x 2x 2x 1x 1x 1x 1x 6x 6x 5x 1x 1x | import { injectable } from "inversify";
import GoogleOAuth2Tokens from "../models/googleOAuth2Tokens.model";
import RepositoryError from "../../core/errors/repositoryError";
import GoogleOAuth2IdentifiersFactory from "../factories/googleOAuth2IdentifiersFactory";
@injectable()
export default class GoogleOAuth2TokensRepository {
public async createOrUpdateAsync(userEmail: string, accessToken: string, refreshToken?: string) {
const existingEntity = await GoogleOAuth2Tokens.findOne({
where: {
user_email: userEmail
}
});
if (existingEntity === null) {
try {
await GoogleOAuth2Tokens.create({
user_email: userEmail,
access_token: accessToken,
refresh_token: refreshToken,
});
return;
} catch(ex) {
// Wrap all thrown db errors and strip of possible sensitive information
Iif (ex instanceof Error) {
throw new RepositoryError(ex);
}
throw ex;
}
}
await GoogleOAuth2Tokens.update({
access_token: accessToken,
...(refreshToken !== undefined) && {
refresh_token: refreshToken
},
}, {
where: {
user_email: userEmail
}
});
}
public async getOrNullAsync(userEmail: string) {
const entity = await GoogleOAuth2Tokens
.findOne({
where: {
user_email: userEmail
}
});
if (entity === null) {
return null;
}
const identifiers = GoogleOAuth2IdentifiersFactory.create({
userEmail: entity.user_email,
accessToken: entity.access_token,
refreshToken: entity.refresh_token
});
return identifiers;
}
} |