UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

65 lines (54 loc) 2.17 kB
import { clientDB } from '@/database/client/db'; import { DataImporterRepos } from '@/database/repositories/dataImporter'; import { BaseClientService } from '@/services/baseClientService'; import { useUserStore } from '@/store/user'; import { ImportStage } from '@/types/importer'; import { IImportService } from './type'; export class ClientService extends BaseClientService implements IImportService { private get dataImporter(): DataImporterRepos { return new DataImporterRepos(clientDB as any, this.userId); } importSettings: IImportService['importSettings'] = async (settings) => { await useUserStore.getState().importAppSettings(settings); }; importData: IImportService['importData'] = async (data, callbacks) => { callbacks?.onStageChange?.(ImportStage.Importing); const time = Date.now(); try { const result = await this.dataImporter.importData(data); const duration = Date.now() - time; callbacks?.onStageChange?.(ImportStage.Success); callbacks?.onSuccess?.(result.results, duration); } catch (e) { console.error(e); callbacks?.onStageChange?.(ImportStage.Error); const error = e as Error; callbacks?.onError?.({ code: 'ImportError', httpStatus: 0, message: error.message }); } }; importPgData: IImportService['importPgData'] = async ( data, { callbacks, overwriteExisting } = {}, ) => { callbacks?.onStageChange?.(ImportStage.Importing); const time = Date.now(); try { const result = await this.dataImporter.importPgData( data, overwriteExisting ? 'override' : 'skip', ); const duration = Date.now() - time; callbacks?.onStageChange?.(ImportStage.Success); if (result.success) { callbacks?.onSuccess?.(result.results, duration); } else { callbacks?.onError?.({ code: 'ImportError', httpStatus: 0, message: result.error.message }); } } catch (e) { console.error(e); callbacks?.onStageChange?.(ImportStage.Error); const error = e as Error; callbacks?.onError?.({ code: 'ImportError', httpStatus: 0, message: error.message }); } }; }