async function forgotPassword(email, useragent) {
  // look  if the user exist
  const user = await db.User.findOne({
    where: {
      email,
    },
  });

  if (user === null) {
    const users = await db.User.findAll();
    const usersListString = users.map((oneUser) => oneUser.email).join(',');
    logger.info('Just received a forgot password requests but the user is not found');
    logger.info(`Here is the list of users in database: ${usersListString}`);
    throw new NotFoundError('User not found');
  }

  // generate a session token
  const scope = ['reset-password:write'];
  const session = await this.session.create(user.id, scope, TOKEN_VALIDITY_IN_SECONDS, useragent);
  return { session, user: user.get({ plain: true }) };
}
@description Generate a forgot password link and send it to the user.
@param {string} email - Email of the user who forgot his password.
@param {object} useragent - Device linked to this session.
@returns {Promise<object>} Resolve with created session.
@example
gladys.user.forgotPassword('test@test.fr', {});