Example #1
0
function generateBadge(username) {
  check.verify.unemptyString(username, 'expected username');

  if (badge[username] && badge[username].generating) {
    return badge[username].generating;
  }

  ensureSpace();

  if (!badge[username]) {
    badge[username] = {};
  }

  // just keep promise in the image's placeholder
  badge[username].generating = badge(username)
  .then(function (filename) {
    check.verify.unemptyString(filename, 'expected generated badge filename');
    var image = fs.readFileSync(filename);
    badges[username] = {
      image: image,
      date: new moment()
    };

    fs.unlinkSync(filename);

    return image;
  });

  return badge[username].generating;
}
Example #2
0
function generateBadge(username) {
  check.verify.unemptyString(username, 'expected username');

  if (badge[username] && badge[username].generating) {
    return badge[username].generating;
  }

  ensureSpace();

  if (!badge[username]) {
    badge[username] = {};
  }

  badge[username].generating = badge(username)
    .then(keepGeneratedBadge.bind(null, username));

  return badge[username].generating;
}