Skip to content

Commit 9672482

Browse files
committed
Ability to update .env file for adding openai key
1 parent 6b61392 commit 9672482

File tree

4 files changed

+38
-4
lines changed

4 files changed

+38
-4
lines changed

packages/flowtest-electron/src/ipc/collection.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,24 @@ const registerRendererEventHandlers = (mainWindow, watcher) => {
168168
}
169169
});
170170

171+
ipcMain.handle('renderer:addOrUpdate-dotEnvironment', async (event, collectionPath, variables) => {
172+
try {
173+
const pathname = path.join(collectionPath, '.env');
174+
// variables should be of format `k1=v1\nk2=v2`;
175+
176+
// Append to the .env file or create it if it doesn't exist
177+
fs.appendFile(pathname, variables, (err) => {
178+
if (err) {
179+
console.error('Error writing to .env file:', err);
180+
return Promise.reject(error);
181+
}
182+
console.log('.env file has been updated');
183+
});
184+
} catch (error) {
185+
return Promise.reject(error);
186+
}
187+
});
188+
171189
ipcMain.handle('renderer:create-flowtest', async (event, name, path, flowData) => {
172190
try {
173191
if (isDirectory(path)) {

src/components/molecules/flow/flowtestai.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,9 @@ export const generateFlowData = async (instruction, modelName, collectionId) =>
5959
return Promise.reject(new Error(`model: ${modelName} not supported`));
6060
}
6161
} else {
62-
return Promise.reject(new Error('A flowtest with this path does not exist'));
62+
return Promise.reject(new Error('Collection not found'));
6363
}
6464
} catch (error) {
65-
console.log(`Error generating flowData: ${error}`);
66-
// TODO: show error in UI
67-
return Promise.reject(error);
65+
return Promise.reject(`Error generating flowData: ${error}`);
6866
}
6967
};

src/components/molecules/flow/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ const Flow = ({ tabId, collectionId, flowData }) => {
310310
setEdges(result.edges);
311311
})
312312
.catch((error) => {
313+
// TODO: show error in UI
313314
console.log(error);
314315
});
315316
}}

src/service/collection.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,23 @@ export const deleteEnvironmentFile = (name, collectionId) => {
147147
}
148148
};
149149

150+
export const addOrUpdateDotEnvironmentFile = (collectionId, variables) => {
151+
const { ipcRenderer } = window;
152+
153+
const collection = useCollectionStore.getState().collections.find((c) => c.id === collectionId);
154+
155+
if (collection) {
156+
return new Promise((resolve, reject) => {
157+
ipcRenderer
158+
.invoke('renderer:addOrUpdate-dotEnvironment', collection.pathname, variables)
159+
.then(resolve)
160+
.catch(reject);
161+
});
162+
} else {
163+
return Promise.reject(new Error('Collection not found'));
164+
}
165+
};
166+
150167
export const createFlowTest = (name, folderPath, collectionId) => {
151168
try {
152169
const { ipcRenderer } = window;

0 commit comments

Comments
 (0)