Skip to content

Commit e69f294

Browse files
refactor(Solid): use schema-aligned docs from model layer, remove doc rebuild in SolidStorage
Model layer builds full message/conversation docs; Solid only persists and merges existing Pod data for partial updates.
1 parent 20a964a commit e69f294

3 files changed

Lines changed: 77 additions & 177 deletions

File tree

api/models/Conversation.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,17 @@ module.exports = {
138138

139139
if (isSolidUser(req)) {
140140
try {
141-
const savedConvo = await saveConvoToSolid(req, baseConvo, metadata);
141+
// Full document aligned with schema (same shape as MongoDB); SolidStorage adds messages + timestamps
142+
const finalConversationId = newConversationId || conversationId;
143+
const convoDocument = {
144+
...baseConvo,
145+
conversationId: finalConversationId,
146+
user: req.user.id,
147+
};
148+
if (newConversationId && newConversationId !== conversationId) {
149+
convoDocument.previousConversationId = conversationId;
150+
}
151+
const savedConvo = await saveConvoToSolid(req, convoDocument, metadata);
142152
return savedConvo;
143153
} catch (error) {
144154
logger.error('[saveConvo] Error saving conversation to Solid Pod', error);

api/models/Message.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,14 @@ async function saveMessage(req, params, metadata) {
8282

8383
if (isSolidUser(req)) {
8484
try {
85-
const savedMessage = await saveMessageToSolid(req, baseMessage, metadata);
85+
// Full document aligned with schema (same shape as MongoDB); SolidStorage only persists it
86+
const messageDocument = {
87+
...baseMessage,
88+
user: req.user.id,
89+
createdAt: baseMessage.createdAt || new Date().toISOString(),
90+
updatedAt: new Date().toISOString(),
91+
};
92+
const savedMessage = await saveMessageToSolid(req, messageDocument, metadata);
8693
return savedMessage;
8794
} catch (err) {
8895
logger.error('Error saving message to Solid Pod:', err);

0 commit comments

Comments
 (0)