fitaiProto/apps/admin/src/app/api/profile/fitness/route.ts
2025-11-07 23:46:46 +01:00

77 lines
2.0 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server'
import { getDatabase } from '../../../../lib/database/index'
export async function POST(request: NextRequest) {
try {
const db = await getDatabase()
const profileData = await request.json()
if (!profileData.userId || !profileData.height || !profileData.weight || !profileData.age) {
return NextResponse.json(
{ error: 'Missing required fields' },
{ status: 400 }
)
}
// Check if user exists
const user = await db.getUserById(profileData.userId)
if (!user) {
return NextResponse.json(
{ error: 'User not found' },
{ status: 404 }
)
}
// Check if profile already exists
const existingProfile = await db.getFitnessProfileByUserId(profileData.userId)
let profile
if (existingProfile) {
profile = await db.updateFitnessProfile(profileData.userId, profileData)
} else {
profile = await db.createFitnessProfile(profileData)
}
return NextResponse.json(
{
message: 'Fitness profile saved successfully',
profile
},
{ status: 201 }
)
} catch (error) {
console.error('Fitness profile error:', error)
return NextResponse.json(
{ error: 'Internal server error' },
{ status: 500 }
)
}
}
export async function GET(request: NextRequest) {
try {
const db = await getDatabase()
const { searchParams } = new URL(request.url)
const userId = searchParams.get('userId')
if (userId) {
const profile = await db.getFitnessProfileByUserId(userId)
if (!profile) {
return NextResponse.json(
{ error: 'Profile not found' },
{ status: 404 }
)
}
return NextResponse.json({ profile })
}
const profiles = await db.getAllFitnessProfiles()
return NextResponse.json({ profiles })
} catch (error) {
console.error('Get fitness profiles error:', error)
return NextResponse.json(
{ error: 'Internal server error' },
{ status: 500 }
)
}
}