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; } } |