glass/src/bridge/featureBridge.js

77 lines
2.6 KiB
JavaScript

// src/bridge/featureBridge.js
const { ipcMain } = require('electron');
const settingsService = require('../features/settings/settingsService');
const askService = require('../features/ask/askService');
module.exports = {
// Renderer로부터의 요청을 수신
initialize() {
// Ask 관련 핸들러 추가
ipcMain.handle('ask:sendMessage', async (event, userPrompt) => {
return askService.sendMessage(userPrompt);
});
// 기존 ask 핸들러 유지
ipcMain.handle('feature:ask', (e, query) => {
// 실제로는 여기서 Controller -> Service 로직 수행
return `"${query}"에 대한 답변입니다.`;
});
// settings 관련 핸들러 추가
ipcMain.handle('settings:getSettings', async () => {
return await settingsService.getSettings();
});
ipcMain.handle('settings:saveSettings', async (event, settings) => {
return await settingsService.saveSettings(settings);
});
ipcMain.handle('settings:getPresets', async () => {
return await settingsService.getPresets();
});
ipcMain.handle('settings:getPresetTemplates', async () => {
return await settingsService.getPresetTemplates();
});
ipcMain.handle('settings:createPreset', async (event, title, prompt) => {
return await settingsService.createPreset(title, prompt);
});
ipcMain.handle('settings:updatePreset', async (event, id, title, prompt) => {
return await settingsService.updatePreset(id, title, prompt);
});
ipcMain.handle('settings:deletePreset', async (event, id) => {
return await settingsService.deletePreset(id);
});
ipcMain.handle('settings:saveApiKey', async (event, apiKey, provider) => {
return await settingsService.saveApiKey(apiKey, provider);
});
ipcMain.handle('settings:removeApiKey', async () => {
return await settingsService.removeApiKey();
});
ipcMain.handle('settings:updateContentProtection', async (event, enabled) => {
return await settingsService.updateContentProtection(enabled);
});
ipcMain.handle('settings:get-auto-update', async () => {
return await settingsService.getAutoUpdateSetting();
});
ipcMain.handle('settings:set-auto-update', async (event, isEnabled) => {
console.log('[SettingsService] Setting auto update setting:', isEnabled);
return await settingsService.setAutoUpdateSetting(isEnabled);
});
console.log('[FeatureBridge] Initialized with ask and settings handlers.');
},
// Renderer로 상태를 전송
sendAskProgress(win, progress) {
win.webContents.send('feature:ask:progress', progress);
},
};