This commit is contained in:
seb
2026-10-15 00:23:55 +02:00
parent 507dffa567
commit bdd7ebf5b8
2 changed files with 16 additions and 5 deletions

View File

@@ -27,6 +27,8 @@ function quoteErrorStatus(error) {
if (error.message === 'File name required') return 400; if (error.message === 'File name required') return 400;
if (error.message === 'Mimetype required') return 400; if (error.message === 'Mimetype required') return 400;
if (error.message === 'Content required') return 400; if (error.message === 'Content required') return 400;
if (error.message === 'Invalid attachment order') return 400;
if (error.message?.includes('Invalid target id')) return 400;
if (error.message?.includes('parent article') || error.message?.includes('A parent article')) return 400; if (error.message?.includes('parent article') || error.message?.includes('A parent article')) return 400;
return 500; return 500;
} }

View File

@@ -46,12 +46,18 @@ export async function list(googleAuthId, opts) {
const store = await getStore(); const store = await getStore();
const result = await store.quote.list(googleAuthId, opts); const result = await store.quote.list(googleAuthId, opts);
if (Array.isArray(result)) { if (Array.isArray(result)) {
return result.map((q) => enrichQuote(q)); const filesList = await Promise.all(
result.map((q) => store.manifestattachment.listByManifestId(googleAuthId, q.id).catch(() => []))
);
return result.map((q, i) => enrichQuote(q, filesList[i]));
} }
if (result && Array.isArray(result.quotes)) { if (result && Array.isArray(result.quotes)) {
const filesList = await Promise.all(
result.quotes.map((q) => store.manifestattachment.listByManifestId(googleAuthId, q.id).catch(() => []))
);
return { return {
...result, ...result,
quotes: result.quotes.map((q) => enrichQuote(q)), quotes: result.quotes.map((q, i) => enrichQuote(q, filesList[i])),
}; };
} }
return result; return result;
@@ -69,13 +75,16 @@ export async function getById(googleAuthId, id) {
export async function create(googleAuthId, data) { export async function create(googleAuthId, data) {
const store = await getStore(); const store = await getStore();
const quote = await store.quote.create(googleAuthId, data); const quote = await store.quote.create(googleAuthId, data);
return enrichQuote(quote); return enrichQuote(quote, []);
} }
export async function update(googleAuthId, id, data) { export async function update(googleAuthId, id, data) {
const store = await getStore(); const store = await getStore();
const quote = await store.quote.update(googleAuthId, id, data); const [quote, files] = await Promise.all([
return enrichQuote(quote); store.quote.update(googleAuthId, id, data),
store.manifestattachment.listByManifestId(googleAuthId, id).catch(() => []),
]);
return enrichQuote(quote, files);
} }
export async function remove(googleAuthId, id) { export async function remove(googleAuthId, id) {