mirror of
				https://github.com/hydralauncher/hydra.git
				synced 2025-03-09 15:40:26 +00:00 
			
		
		
		
	refactor user preferences and create user auth entity
This commit is contained in:
		
							parent
							
								
									9e5118d1dc
								
							
						
					
					
						commit
						1797abb2da
					
				
					 5 changed files with 39 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -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<BetterSqlite3ConnectionOptions>
 | 
			
		||||
| 
						 | 
				
			
			@ -24,6 +25,7 @@ export const createDataSource = (
 | 
			
		|||
      GameShopCache,
 | 
			
		||||
      DownloadSource,
 | 
			
		||||
      DownloadQueue,
 | 
			
		||||
      UserAuth,
 | 
			
		||||
    ],
 | 
			
		||||
    synchronize: true,
 | 
			
		||||
    database: databasePath,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										28
									
								
								src/main/entity/user-auth.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/main/entity/user-auth.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue