/
viktorphp
/
front-socket
Обзор
Документация
Войти
/
viktorphp
/
front-socket
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/app/api/profile/avatar/route.ts
38 строк
1 KB
Viktorphp84
feature-profile: add avatar upload
19 янв 2025, 22:53
19 янв 2025, 22:53
10251ea
Код
Авторство
О чём код?
import { cookies } from 'next/headers'; import { NextResponse } from 'next/server'; import { userService } from '@entities/user'; import { detectMimeType } from '@shared/lib/client'; export async function GET() { const cookieStore = (await cookies()).getAll(); const cookieHeader = cookieStore .map((cookie) => `${cookie.name}=${cookie.value}`) .join('; '); try { const userAvatar = await userService.getAvatar({ headers: { Cookie: cookieHeader, }, }); if (!userAvatar.data) { return new NextResponse(null, { status: 404 }); } // Декодируем base64 строку обратно в Buffer const imageBuffer = Buffer.from(userAvatar.data, 'base64'); const mimeType = detectMimeType(imageBuffer); const base64String = imageBuffer.toString('base64'); const avatarSrc = `data:${mimeType};base64,${base64String}`; return new NextResponse(avatarSrc, { headers: { 'Content-Type': mimeType, }, }); } catch (error) { return new NextResponse(null, { status: 401 }); } }