Fix accessToken fetching
This commit is contained in:
@@ -14,7 +14,13 @@ import {
|
||||
DataType,
|
||||
Unique,
|
||||
} from "sequelize-typescript";
|
||||
import { Recording, Speech, Transcription, Video } from "@main/db/models";
|
||||
import {
|
||||
Recording,
|
||||
Speech,
|
||||
Transcription,
|
||||
UserSetting,
|
||||
Video,
|
||||
} from "@main/db/models";
|
||||
import settings from "@main/settings";
|
||||
import { AudioFormats, VideoFormats } from "@/constants";
|
||||
import { hashFile } from "@main/utils";
|
||||
@@ -193,7 +199,7 @@ export class Audio extends Model<Audio> {
|
||||
|
||||
const webApi = new Client({
|
||||
baseUrl: settings.apiUrl(),
|
||||
accessToken: settings.getSync("user.accessToken") as string,
|
||||
accessToken: (await UserSetting.accessToken()) as string,
|
||||
logger: log.scope("audio/sync"),
|
||||
});
|
||||
|
||||
@@ -257,7 +263,7 @@ export class Audio extends Model<Audio> {
|
||||
}
|
||||
|
||||
@AfterDestroy
|
||||
static cleanupFile(audio: Audio) {
|
||||
static async cleanupFile(audio: Audio) {
|
||||
if (audio.filePath) {
|
||||
fs.remove(audio.filePath);
|
||||
}
|
||||
@@ -276,7 +282,7 @@ export class Audio extends Model<Audio> {
|
||||
|
||||
const webApi = new Client({
|
||||
baseUrl: settings.apiUrl(),
|
||||
accessToken: settings.getSync("user.accessToken") as string,
|
||||
accessToken: (await UserSetting.accessToken()) as string,
|
||||
logger: log.scope("audio/cleanupFile"),
|
||||
});
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ import mainWindow from "@main/window";
|
||||
import log from "@main/logger";
|
||||
import { Client } from "@/api";
|
||||
import settings from "@main/settings";
|
||||
import { Segment } from "@main/db/models";
|
||||
import { Segment, UserSetting } from "@main/db/models";
|
||||
|
||||
const logger = log.scope("db/models/note");
|
||||
@Table({
|
||||
@@ -61,7 +61,7 @@ export class Note extends Model<Note> {
|
||||
|
||||
const webApi = new Client({
|
||||
baseUrl: settings.apiUrl(),
|
||||
accessToken: settings.getSync("user.accessToken") as string,
|
||||
accessToken: (await UserSetting.accessToken()) as string,
|
||||
logger,
|
||||
});
|
||||
|
||||
@@ -118,10 +118,10 @@ export class Note extends Model<Note> {
|
||||
}
|
||||
|
||||
@AfterDestroy
|
||||
static destroyRemote(note: Note) {
|
||||
static async destroyRemote(note: Note) {
|
||||
const webApi = new Client({
|
||||
baseUrl: settings.apiUrl(),
|
||||
accessToken: settings.getSync("user.accessToken") as string,
|
||||
accessToken: (await UserSetting.accessToken()) as string,
|
||||
logger,
|
||||
});
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import {
|
||||
AfterFind,
|
||||
} from "sequelize-typescript";
|
||||
import mainWindow from "@main/window";
|
||||
import { Recording } from "@main/db/models";
|
||||
import { Recording, UserSetting } from "@main/db/models";
|
||||
import { Client } from "@/api";
|
||||
import settings from "@main/settings";
|
||||
import log from "@main/logger";
|
||||
@@ -102,7 +102,7 @@ export class PronunciationAssessment extends Model<PronunciationAssessment> {
|
||||
async sync() {
|
||||
const webApi = new Client({
|
||||
baseUrl: settings.apiUrl(),
|
||||
accessToken: settings.getSync("user.accessToken") as string,
|
||||
accessToken: (await UserSetting.accessToken()) as string,
|
||||
logger: log.scope("api/client"),
|
||||
});
|
||||
|
||||
|
||||
@@ -15,7 +15,12 @@ import {
|
||||
HasOne,
|
||||
} from "sequelize-typescript";
|
||||
import mainWindow from "@main/window";
|
||||
import { Audio, PronunciationAssessment, Video } from "@main/db/models";
|
||||
import {
|
||||
Audio,
|
||||
PronunciationAssessment,
|
||||
UserSetting,
|
||||
Video,
|
||||
} from "@main/db/models";
|
||||
import fs from "fs-extra";
|
||||
import path from "path";
|
||||
import settings from "@main/settings";
|
||||
@@ -144,7 +149,7 @@ export class Recording extends Model<Recording> {
|
||||
|
||||
const webApi = new Client({
|
||||
baseUrl: settings.apiUrl(),
|
||||
accessToken: settings.getSync("user.accessToken") as string,
|
||||
accessToken: (await UserSetting.accessToken()) as string,
|
||||
logger,
|
||||
});
|
||||
|
||||
@@ -234,11 +239,11 @@ export class Recording extends Model<Recording> {
|
||||
}
|
||||
|
||||
@AfterDestroy
|
||||
static cleanupFile(recording: Recording) {
|
||||
static async cleanupFile(recording: Recording) {
|
||||
fs.remove(recording.filePath);
|
||||
const webApi = new Client({
|
||||
baseUrl: settings.apiUrl(),
|
||||
accessToken: settings.getSync("user.accessToken") as string,
|
||||
accessToken: (await UserSetting.accessToken()) as string,
|
||||
logger: log.scope("recording/cleanupFile"),
|
||||
});
|
||||
webApi.deleteRecording(recording.id);
|
||||
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
AllowNull,
|
||||
AfterFind,
|
||||
} from "sequelize-typescript";
|
||||
import { Audio, Transcription, Video } from "@main/db/models";
|
||||
import { Audio, Transcription, UserSetting, Video } from "@main/db/models";
|
||||
import mainWindow from "@main/window";
|
||||
import log from "@main/logger";
|
||||
import { Client } from "@/api";
|
||||
@@ -110,7 +110,7 @@ export class Segment extends Model<Segment> {
|
||||
|
||||
const webApi = new Client({
|
||||
baseUrl: settings.apiUrl(),
|
||||
accessToken: settings.getSync("user.accessToken") as string,
|
||||
accessToken: (await UserSetting.accessToken()) as string,
|
||||
logger,
|
||||
});
|
||||
return webApi.syncSegment(this.toJSON()).then(() => {
|
||||
|
||||
@@ -21,7 +21,7 @@ import settings from "@main/settings";
|
||||
import OpenAI, { type ClientOptions } from "openai";
|
||||
import { t } from "i18next";
|
||||
import { hashFile } from "@main/utils";
|
||||
import { Audio, Message } from "@main/db/models";
|
||||
import { Audio, Message, UserSetting } from "@main/db/models";
|
||||
import log from "@main/logger";
|
||||
import proxyAgent from "@main/proxy-agent";
|
||||
|
||||
@@ -180,7 +180,7 @@ export class Speech extends Model<Speech> {
|
||||
let openaiConfig: ClientOptions = {};
|
||||
if (engine === "enjoyai") {
|
||||
openaiConfig = {
|
||||
apiKey: settings.getSync("user.accessToken") as string,
|
||||
apiKey: (await UserSetting.accessToken()) as string,
|
||||
baseURL: `${settings.apiUrl()}/api/ai`,
|
||||
};
|
||||
} else if (engine === "openai") {
|
||||
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
DataType,
|
||||
Unique,
|
||||
} from "sequelize-typescript";
|
||||
import { Audio, Video } from "@main/db/models";
|
||||
import { Audio, UserSetting, Video } from "@main/db/models";
|
||||
import mainWindow from "@main/window";
|
||||
import log from "@main/logger";
|
||||
import { Client } from "@/api";
|
||||
@@ -81,7 +81,7 @@ export class Transcription extends Model<Transcription> {
|
||||
|
||||
const webApi = new Client({
|
||||
baseUrl: settings.apiUrl(),
|
||||
accessToken: settings.getSync("user.accessToken") as string,
|
||||
accessToken: (await UserSetting.accessToken()) as string,
|
||||
logger,
|
||||
});
|
||||
return webApi.syncTranscription(this.toJSON()).then(() => {
|
||||
|
||||
@@ -33,9 +33,7 @@ export class UserSetting extends Model<UserSetting> {
|
||||
@Column(DataType.TEXT)
|
||||
value: string;
|
||||
|
||||
static async get(
|
||||
key: UserSettingKeyEnum
|
||||
): Promise<string | Object | number | null> {
|
||||
static async get(key: UserSettingKeyEnum): Promise<any> {
|
||||
const setting = await UserSetting.findOne({ where: { key } });
|
||||
if (!setting) return null;
|
||||
|
||||
@@ -46,10 +44,7 @@ export class UserSetting extends Model<UserSetting> {
|
||||
}
|
||||
}
|
||||
|
||||
static async set(
|
||||
key: UserSettingKeyEnum,
|
||||
value: object | string
|
||||
): Promise<void> {
|
||||
static async set(key: UserSettingKeyEnum, value: any): Promise<void> {
|
||||
const setting = await UserSetting.findOne({ where: { key } });
|
||||
|
||||
if (typeof value === "object") {
|
||||
@@ -68,6 +63,10 @@ export class UserSetting extends Model<UserSetting> {
|
||||
}
|
||||
}
|
||||
|
||||
static async accessToken(): Promise<string | null> {
|
||||
return (await UserSetting.get(UserSettingKeyEnum.PROFILE))?.accessToken;
|
||||
}
|
||||
|
||||
static async clear(): Promise<void> {
|
||||
await UserSetting.destroy({ where: {} });
|
||||
}
|
||||
|
||||
@@ -14,7 +14,13 @@ import {
|
||||
DataType,
|
||||
Unique,
|
||||
} from "sequelize-typescript";
|
||||
import { Audio, Recording, Speech, Transcription } from "@main/db/models";
|
||||
import {
|
||||
Audio,
|
||||
Recording,
|
||||
Speech,
|
||||
Transcription,
|
||||
UserSetting,
|
||||
} from "@main/db/models";
|
||||
import settings from "@main/settings";
|
||||
import { AudioFormats, VideoFormats, WEB_API_URL } from "@/constants";
|
||||
import { hashFile } from "@main/utils";
|
||||
@@ -214,7 +220,7 @@ export class Video extends Model<Video> {
|
||||
|
||||
const webApi = new Client({
|
||||
baseUrl: settings.apiUrl(),
|
||||
accessToken: settings.getSync("user.accessToken") as string,
|
||||
accessToken: (await UserSetting.accessToken()) as string,
|
||||
logger,
|
||||
});
|
||||
|
||||
@@ -279,7 +285,7 @@ export class Video extends Model<Video> {
|
||||
}
|
||||
|
||||
@AfterDestroy
|
||||
static cleanupFile(video: Video) {
|
||||
static async cleanupFile(video: Video) {
|
||||
if (video.filePath) {
|
||||
fs.remove(video.filePath);
|
||||
}
|
||||
@@ -292,7 +298,7 @@ export class Video extends Model<Video> {
|
||||
|
||||
const webApi = new Client({
|
||||
baseUrl: settings.apiUrl(),
|
||||
accessToken: settings.getSync("user.accessToken") as string,
|
||||
accessToken: (await UserSetting.accessToken()) as string,
|
||||
logger: log.scope("video/cleanupFile"),
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user