export default defineEventHandler(async (event) => {
  const { code } = await readBody(event)

  if (!code) throw createError({ statusCode: 400, statusMessage: 'Code is required'})
  
  const config = useRuntimeConfig()
  const auth = await getAuth(event)

  const whitelistColl = db.collection('whitelist')
  const whitelistDoc = await whitelistColl.findOne({ code: code.toString() })

  if (!whitelistDoc) throw createError({ statusCode: 400, statusMessage: 'Code has not been found, join the server first' })
  if (whitelistDoc && whitelistDoc.verified) throw createError({ statusCode: 400, statusMessage: 'Already verified' })
  
  await whitelistColl.updateOne({ code: code.toString() }, { $set: { verified: true } })

  const usersColl = db.collection('users')
  await usersColl.updateOne({ 'discord.id': auth.discord.id }, { $set: { 'minecraft.uuid': whitelistDoc.uuid } })


  return { uuid: whitelistDoc.uuid, verified: false }
});
