feat(profile): show real telegram avatars in messenger chips

This commit is contained in:
Ruslan Bakiev
2026-04-03 18:36:25 +07:00
parent f2fb64a0b7
commit f941ba7192
9 changed files with 267 additions and 51 deletions

View File

@@ -0,0 +1,32 @@
export default defineEventHandler(async (event) => {
const config = useRuntimeConfig(event);
const backendUrl = new URL(config.backendGraphqlUrl);
const connectionId = getRouterParam(event, 'connectionId');
if (!connectionId) {
throw createError({
statusCode: 400,
statusMessage: 'Connection id is required.',
});
}
const response = await fetch(`${backendUrl.origin}/messenger/avatar/${encodeURIComponent(connectionId)}`, {
headers: {
...(getHeader(event, 'cookie') ? { cookie: getHeader(event, 'cookie') as string } : {}),
...(getHeader(event, 'authorization') ? { authorization: getHeader(event, 'authorization') as string } : {}),
},
});
if (!response.ok || !response.body) {
throw createError({
statusCode: response.status,
statusMessage: 'Messenger avatar is not available.',
});
}
setResponseStatus(event, response.status);
setHeader(event, 'content-type', response.headers.get('content-type') || 'image/jpeg');
setHeader(event, 'cache-control', response.headers.get('cache-control') || 'private, max-age=300');
return Buffer.from(await response.arrayBuffer());
});