const express = require('express');
const { Minecraft, Users } = require('../functions/models.js');

const router = express.Router();

router.post('/', async (req, res) => {
  const { uuid } = req.body;

  if (!uuid) return res.status(400).send({ errorMessage: 'UUID is required' });

  try {
    const user = await Users.findOne({ where: { minecraftUUID: uuid } });

    if (!user) {
      const minecraftCol = await Minecraft.findOrCreate({
        where: { uuid },
        defaults: {
          code: generateCode().toString(),
        },
      });

      return res.send({ code: minecraftCol[0].code, whitelisted: minecraftCol[0].whitelisted });
    }

    const team = await user.getTeam();

    let username;
    if (!team) {
      username = user.rawUsername;
    } else {
      username = '<gray>[</gray>' + `<color:${team.color}>${team.name}</color>` + '<gray>] </gray>' + user.rawUsername;
    }


    res.send({ whitelisted: true, username, rawUsername: user.rawUsername });
  } catch (error) {
    console.log(error);

    res.status(500).send({ errorMessage: 'Error while verifing minecraft uuid' });
  }
});

const generateCode = () => {
  return Math.floor(100000 + Math.random() * 900000);
};

module.exports = router;
