fix(api): fix story chapter ids disappearing after an edit
This commit is contained in:
parent
f1a5cfffd4
commit
7b8a089d95
@ -22,7 +22,6 @@ export default eventHandler(async (ev) => {
|
|||||||
title: body.title,
|
title: body.title,
|
||||||
completed: body.completed,
|
completed: body.completed,
|
||||||
coAuthor: !!body.coAuthor ? body.coAuthor : null,
|
coAuthor: !!body.coAuthor ? body.coAuthor : null,
|
||||||
chapters: [],
|
|
||||||
};
|
};
|
||||||
for (const oc of os.chapters) {
|
for (const oc of os.chapters) {
|
||||||
let filename = `/stories/${oc.id}.txt`;
|
let filename = `/stories/${oc.id}.txt`;
|
||||||
@ -32,24 +31,31 @@ export default eventHandler(async (ev) => {
|
|||||||
await bucket.delete(d._id);
|
await bucket.delete(d._id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const cc = os.chapters;
|
||||||
|
os.chapters = [];
|
||||||
|
await os.save();
|
||||||
for (const c of body.chapters) {
|
for (const c of body.chapters) {
|
||||||
let idx = os.chapters.findIndex((k) => k.id === c.id);
|
let idx = cc.findIndex((k) => k.id === c.id);
|
||||||
const cont = await bodyHandler(c);
|
const cont = await bodyHandler(c);
|
||||||
if (idx === -1) {
|
if (idx === -1) {
|
||||||
update.chapters!.push({
|
os.chapters!.push({
|
||||||
...modelFormChapter(c),
|
...modelFormChapter(c),
|
||||||
posted: new Date(Date.now()),
|
posted: new Date(Date.now()),
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
update.chapters!.push({
|
os.chapters!.push({
|
||||||
...modelFormChapter(c),
|
...modelFormChapter(c),
|
||||||
id: os.chapters[idx].id,
|
// id: os.chapters[idx].id,
|
||||||
posted: os.chapters[idx].posted,
|
words: countWords(cont),
|
||||||
|
posted: cc[idx].posted,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
await replaceOrUploadContent(os.chapters![idx]?.id ?? c._id, cont);
|
await os.save();
|
||||||
update.chapters![update.chapters!.length - 1].words = countWords(cont);
|
for (let i = 0; i < os.chapters.length; i++) {
|
||||||
|
const c = os.chapters[i];
|
||||||
|
const cont = await bodyHandler(body.chapters[i]);
|
||||||
|
await replaceOrUploadContent(c.id ?? c._id, cont);
|
||||||
}
|
}
|
||||||
os = await Story.findOneAndUpdate(
|
os = await Story.findOneAndUpdate(
|
||||||
{
|
{
|
||||||
@ -66,6 +72,6 @@ export default eventHandler(async (ev) => {
|
|||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
success: true,
|
success: true,
|
||||||
data: os.toObject(),
|
story: os.toObject(),
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user