mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2025-09-03 14:22:41 +02:00
Update roadmap endpoint
This commit is contained in:
@@ -1,36 +1,32 @@
|
||||
import type { APIRoute } from 'astro';
|
||||
|
||||
export const prerender = false;
|
||||
export const prerender = true;
|
||||
|
||||
export async function getStaticPaths() {
|
||||
const roadmapJsons = import.meta.glob('/src/data/roadmaps/**/*.json', {
|
||||
eager: true,
|
||||
});
|
||||
|
||||
return Object.keys(roadmapJsons).map((filePath) => {
|
||||
const roadmapId = filePath.split('/').pop()?.replace('.json', '');
|
||||
const roadmapJson = roadmapJsons[filePath] as Record<string, any>;
|
||||
|
||||
return {
|
||||
params: {
|
||||
roadmapId,
|
||||
},
|
||||
props: {
|
||||
roadmapJson: roadmapJson?.default,
|
||||
},
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
export const GET: APIRoute = async function ({ params, request, props }) {
|
||||
const roadmapId = params.roadmapId;
|
||||
|
||||
const roadmapUrl = `${import.meta.env.PUBLIC_API_URL}/v1-official-roadmap/${roadmapId}`;
|
||||
|
||||
const res = await fetch(roadmapUrl);
|
||||
const roadmapJson = await res.json();
|
||||
|
||||
if (res.status !== 200) {
|
||||
return new Response(
|
||||
JSON.stringify({
|
||||
error: roadmapJson.error,
|
||||
}),
|
||||
{
|
||||
status: 500,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
return new Response(
|
||||
JSON.stringify({
|
||||
nodes: roadmapJson?.nodes,
|
||||
edges: roadmapJson?.edges,
|
||||
}),
|
||||
{
|
||||
status: 200,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
return new Response(JSON.stringify(props.roadmapJson), {
|
||||
status: 200,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
);
|
||||
});
|
||||
};
|
||||
|
Reference in New Issue
Block a user