diff --git a/src/main/data-source.ts b/src/main/data-source.ts index 71c00c5b..b47ce2c0 100644 --- a/src/main/data-source.ts +++ b/src/main/data-source.ts @@ -11,6 +11,7 @@ import type { BetterSqlite3ConnectionOptions } from "typeorm/driver/better-sqlit import { databasePath } from "./constants"; import migrations from "./migrations"; +import { UserAuth } from "./entity/user-auth"; export const createDataSource = ( options: Partial @@ -24,6 +25,7 @@ export const createDataSource = ( GameShopCache, DownloadSource, DownloadQueue, + UserAuth, ], synchronize: true, database: databasePath, diff --git a/src/main/entity/user-auth.ts b/src/main/entity/user-auth.ts new file mode 100644 index 00000000..61ca6738 --- /dev/null +++ b/src/main/entity/user-auth.ts @@ -0,0 +1,28 @@ +import { + Entity, + PrimaryGeneratedColumn, + Column, + CreateDateColumn, + UpdateDateColumn, +} from "typeorm"; + +@Entity("user_auth") +export class UserAuth { + @PrimaryGeneratedColumn() + id: number; + + @Column("text", { default: "" }) + accessToken: string; + + @Column("text", { default: "" }) + refreshToken: string; + + @Column("int", { default: 0 }) + tokenExpirationTimestamp: number; + + @CreateDateColumn() + createdAt: Date; + + @UpdateDateColumn() + updatedAt: Date; +} diff --git a/src/main/entity/user-preferences.entity.ts b/src/main/entity/user-preferences.entity.ts index 0b8ca960..92db958d 100644 --- a/src/main/entity/user-preferences.entity.ts +++ b/src/main/entity/user-preferences.entity.ts @@ -37,13 +37,4 @@ export class UserPreferences { @UpdateDateColumn() updatedAt: Date; - - @Column("text", { default: "" }) - accessToken: string; - - @Column("text", { default: "" }) - refreshToken: string; - - @Column("int", { default: 0 }) - tokenExpirationTimestamp: number; } diff --git a/src/main/repository.ts b/src/main/repository.ts index 6d66cae8..af6ebcbd 100644 --- a/src/main/repository.ts +++ b/src/main/repository.ts @@ -7,6 +7,7 @@ import { Repack, UserPreferences, } from "@main/entity"; +import { UserAuth } from "./entity/user-auth"; export const gameRepository = dataSource.getRepository(Game); @@ -21,3 +22,5 @@ export const downloadSourceRepository = dataSource.getRepository(DownloadSource); export const downloadQueueRepository = dataSource.getRepository(DownloadQueue); + +export const userAuthRepository = dataSource.getRepository(UserAuth); diff --git a/src/main/services/hydra-api.ts b/src/main/services/hydra-api.ts index 56caab8b..8ae05bcf 100644 --- a/src/main/services/hydra-api.ts +++ b/src/main/services/hydra-api.ts @@ -1,5 +1,4 @@ -import { refreshTokenSchema } from "@main/events/helpers/validators"; -import { userPreferencesRepository } from "@main/repository"; +import { userAuthRepository } from "@main/repository"; import axios, { AxiosInstance } from "axios"; export class HydraApi { @@ -18,14 +17,14 @@ export class HydraApi { baseURL: import.meta.env.MAIN_VITE_API_URL, }); - const userPreferences = await userPreferencesRepository.findOne({ + const userAuth = await userAuthRepository.findOne({ where: { id: 1 }, }); this.userAuth = { - authToken: userPreferences?.accessToken ?? "", - refreshToken: userPreferences?.refreshToken ?? "", - expirationTimestamp: userPreferences?.tokenExpirationTimestamp ?? 0, + authToken: userAuth?.accessToken ?? "", + refreshToken: userAuth?.refreshToken ?? "", + expirationTimestamp: userAuth?.tokenExpirationTimestamp ?? 0, }; } @@ -44,7 +43,7 @@ export class HydraApi { this.userAuth.authToken = accessToken; this.userAuth.expirationTimestamp = tokenExpirationTimestamp; - userPreferencesRepository.upsert( + userAuthRepository.upsert( { id: 1, accessToken,