mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2025-09-09 00:30:40 +02:00
Update roadmap endpoint
This commit is contained in:
@@ -1,36 +1,32 @@
|
|||||||
import type { APIRoute } from 'astro';
|
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 }) {
|
export const GET: APIRoute = async function ({ params, request, props }) {
|
||||||
const roadmapId = params.roadmapId;
|
return new Response(JSON.stringify(props.roadmapJson), {
|
||||||
|
status: 200,
|
||||||
const roadmapUrl = `${import.meta.env.PUBLIC_API_URL}/v1-official-roadmap/${roadmapId}`;
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
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',
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
);
|
});
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user