* refactoring the bridge * Update aec submodule * folder structure refactor * fixing ask logic * resolve import err * fix askview * fix header content html path * fix systemaudiodump path * centralized ask logic * delete legacy code * change askservice to class * settingsService facade * fix getCurrentModelInfo * common service ipc moved to featureBridge * featureBridge init * ui fix * add featureBridge func for listenservice * fix preload conflict * shortcuts seperated * refactor ask * transfer roles from askview to askservice * modifying windowBridge * delete legacy ask code * retrieve conversation history for askserice * fix legacy code * shortcut moved * change naming for featurebridge * screenshot moved from windowManager * rough refactor done --------- Co-authored-by: sanio <sanio@pickle.com> Co-authored-by: jhyang0 <junhyuck0819@gmail.com>
38 lines
1.3 KiB
JavaScript
38 lines
1.3 KiB
JavaScript
const { collection, addDoc, query, getDocs, orderBy, Timestamp } = require('firebase/firestore');
|
|
const { getFirestoreInstance } = require('../../common/services/firebaseClient');
|
|
const { createEncryptedConverter } = require('../../common/repositories/firestoreConverter');
|
|
|
|
const aiMessageConverter = createEncryptedConverter(['content']);
|
|
|
|
function aiMessagesCol(sessionId) {
|
|
if (!sessionId) throw new Error("Session ID is required to access AI messages.");
|
|
const db = getFirestoreInstance();
|
|
return collection(db, `sessions/${sessionId}/ai_messages`).withConverter(aiMessageConverter);
|
|
}
|
|
|
|
async function addAiMessage({ uid, sessionId, role, content, model = 'unknown' }) {
|
|
const now = Timestamp.now();
|
|
const newMessage = {
|
|
uid, // To identify the author of the message
|
|
session_id: sessionId,
|
|
sent_at: now,
|
|
role,
|
|
content,
|
|
model,
|
|
created_at: now,
|
|
};
|
|
|
|
const docRef = await addDoc(aiMessagesCol(sessionId), newMessage);
|
|
return { id: docRef.id };
|
|
}
|
|
|
|
async function getAllAiMessagesBySessionId(sessionId) {
|
|
const q = query(aiMessagesCol(sessionId), orderBy('sent_at', 'asc'));
|
|
const querySnapshot = await getDocs(q);
|
|
return querySnapshot.docs.map(doc => doc.data());
|
|
}
|
|
|
|
module.exports = {
|
|
addAiMessage,
|
|
getAllAiMessagesBySessionId,
|
|
};
|