diff --git a/src/server/api/list.ts b/src/server/api/list.ts index d013a07..39febed 100644 --- a/src/server/api/list.ts +++ b/src/server/api/list.ts @@ -2,25 +2,5 @@ import { serverQueryContent } from "#content/server"; export default defineEventHandler(async (event) => { const contentQuery = await serverQueryContent(event).find(); - - return contentQuery - .filter( - (page) => - page.body.children.find((elem) => { - { - return elem.tag === "pre" && elem.props?.language === "json"; - } - }) != undefined - ) - .map((elem) => elem.title); - - //.map() - //.filter((elem) => {return elem.tag === "pre" && elem.props?.language === "json"}) - - //return //JSON.parse( - /* - .filter((elem) => {return elem.tag === "pre" && elem.props?.language === "json"}) - .map((elem) => {return elem?.props?.code}) - .filter((elem) => { return elem != null })*/ - //) + return contentQuery.filter((page) => page._path?.startsWith("/credentials/") && page.body?.children.find((elem) => elem.tag === "pre" && elem.props?.language === "json") != undefined).map((elem) => elem.title); }); diff --git a/src/server/api/mapping/[name].get.ts b/src/server/api/mapping/[name].get.ts index 8f2309e..24b85b4 100644 --- a/src/server/api/mapping/[name].get.ts +++ b/src/server/api/mapping/[name].get.ts @@ -10,7 +10,7 @@ export default defineEventHandler(async (event) => { const contentQuery = await serverQueryContent(event).find(); const matchedContent = contentQuery.find((content) => { - return content.title === name; + return content._path?.startsWith("/credentials/") && content.title === name; }); if (matchedContent === undefined) { @@ -26,12 +26,17 @@ export default defineEventHandler(async (event) => { return `error: No credential found named: \"${name}\". Available credentials: ${n.join(", ")}`; } - console.log("MATCHED: ", matchedContent.body.children); + console.log("MATCHED: ", matchedContent.body?.children); - const codeblocksAndTitles = matchedContent.body.children.filter((elem) => { + const codeblocksAndTitles = matchedContent.body?.children.filter((elem) => { return (elem.tag === "pre" && elem.props?.language === "json") || elem.tag === "h2"; }); + if (!codeblocksAndTitles) { + setResponseStatus(event, 400); + return "error: no-credential"; + } + let mappingInTitle = false; for (const codeblockOrTitle of codeblocksAndTitles) { console.log("ITERATING: ", codeblockOrTitle); diff --git a/src/server/api/vc/[name].get.ts b/src/server/api/vc/[name].get.ts index fc781c0..5c768cb 100644 --- a/src/server/api/vc/[name].get.ts +++ b/src/server/api/vc/[name].get.ts @@ -10,7 +10,7 @@ export default defineEventHandler(async (event) => { const contentQuery = await serverQueryContent(event).find(); const matchedContent = contentQuery.find((content) => { - return content.title === name; + return content._path?.startsWith("/credentials/") && content.title === name; }); if (matchedContent === undefined) { @@ -26,7 +26,7 @@ export default defineEventHandler(async (event) => { return `error: No credential found named: \"${name}\". Available credentials: ${n.join(", ")}`; } - const code = matchedContent.body.children.find((elem) => { + const code = matchedContent.body?.children.find((elem) => { return elem.tag === "pre" && elem.props?.language === "json"; })?.props?.code;