feat(admin ui): improve feedback when metadata fails
This commit is contained in:
@@ -9,5 +9,13 @@ export default defineEventHandler(async (h3) => {
|
||||
if (!search)
|
||||
throw createError({ statusCode: 400, statusMessage: "Invalid search" });
|
||||
|
||||
return await h3.context.metadataHandler.search(search);
|
||||
const results = await h3.context.metadataHandler.search(search);
|
||||
|
||||
if (results.length == 0)
|
||||
throw createError({
|
||||
statusCode: 500,
|
||||
statusMessage: "No metadata provider returned search results.",
|
||||
});
|
||||
|
||||
return results;
|
||||
});
|
||||
|
||||
@@ -50,15 +50,19 @@ export class MetadataHandler {
|
||||
const queryTransformationPromise = new Promise<
|
||||
InternalGameMetadataResult[]
|
||||
>(async (resolve, reject) => {
|
||||
const results = await provider.search(query);
|
||||
const mappedResults: InternalGameMetadataResult[] = results.map(
|
||||
(result) =>
|
||||
Object.assign({}, result, {
|
||||
sourceId: provider.id(),
|
||||
sourceName: provider.name(),
|
||||
})
|
||||
);
|
||||
resolve(mappedResults);
|
||||
try {
|
||||
const results = await provider.search(query);
|
||||
const mappedResults: InternalGameMetadataResult[] = results.map(
|
||||
(result) =>
|
||||
Object.assign({}, result, {
|
||||
sourceId: provider.id(),
|
||||
sourceName: provider.name(),
|
||||
})
|
||||
);
|
||||
resolve(mappedResults);
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
}
|
||||
});
|
||||
promises.push(queryTransformationPromise);
|
||||
}
|
||||
@@ -68,7 +72,7 @@ export class MetadataHandler {
|
||||
.filter((result) => result.status === "fulfilled")
|
||||
.map((result) => result.value)
|
||||
.flat();
|
||||
|
||||
|
||||
return successfulResults;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user