Skip to content

Commit

Permalink
Add default opengraph on error (#5552)
Browse files Browse the repository at this point in the history
  • Loading branch information
arikchakma committed Apr 25, 2024
1 parent caa8681 commit 3a1b896
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 14 deletions.
5 changes: 5 additions & 0 deletions src/lib/open-graph.ts
Expand Up @@ -6,3 +6,8 @@ type RoadmapOpenGraphQuery = {
export function getOpenGraphImageUrl(params: RoadmapOpenGraphQuery) {
return `${import.meta.env.DEV ? 'http://localhost:3000' : 'https://roadmap.sh'}/og-images/${params.group}/${params.resourceId}.png`;
}

export async function getDefaultOpenGraphImageBuffer() {
const defaultImageUrl = `${import.meta.env.DEV ? 'http://localhost:3000' : 'https://roadmap.sh'}/images/og-img.png`;
return fetch(defaultImageUrl).then((response) => response.arrayBuffer());
}
25 changes: 11 additions & 14 deletions src/pages/og/[slug].ts
@@ -1,4 +1,5 @@
import type { APIRoute } from 'astro';
import { getDefaultOpenGraphImageBuffer } from '../../lib/open-graph';

export const prerender = false;

Expand All @@ -10,26 +11,22 @@ export const GET: APIRoute<any, Params> = async (context) => {
const { slug } = context.params;

if (!slug.startsWith('user-')) {
return new Response(
JSON.stringify({
error: 'Invalid slug',
}),
{
status: 400,
const buffer = await getDefaultOpenGraphImageBuffer();
return new Response(buffer, {
headers: {
'Content-Type': 'image/png',
},
);
});
}

const username = slug.replace('user-', '');
if (!username) {
return new Response(
JSON.stringify({
error: 'Invalid username',
}),
{
status: 400,
const buffer = await getDefaultOpenGraphImageBuffer();
return new Response(buffer, {
headers: {
'Content-Type': 'image/png',
},
);
});
}

const response = await fetch(
Expand Down

0 comments on commit 3a1b896

Please sign in to comment.