const { User } = require('../../models');
const { generateGuest, generateRandomUrl } = require('./guest');

module.exports = async (req, res) => {
  const { id, token } = req.query;

  const user = await User.findOne({ _id: id, token });
  // .populate({
  //   path: 'routes',
  //   select: '_id title distance owner updated_at',
  //   options: {
  //     limit: 200,
  //     sort: { updated_at: -1 },
  //   }
  // })

  const random_url = await generateRandomUrl();

  if (user) {
    return res.send({
      success: true, ...user.toObject(), id: user._id, random_url
    });
  }

  const guest = await generateGuest();
  const created = await User.create(guest).then(result => result.toObject());

  return res.send({
    success: false, error: 'user not found', error_code: 1231, ...created, id: created._id, random_url
  });
};