Exemplo n.º 1
0
exports.transform = function(request, next) {
  if (checks.isUndefined(request.route.tags)) {
    return next();
  }

  var response = request.response();

  if (!response.raw) {
    return next();
  }

  if (request.route.tags.count('companies') > 0 && checks.isDefined(response.raw.companies)) {
    async.map(response.raw.companies, exports.process, function(err, companies) {
      if (err) {
        return next(Hapi.error.internal('', err));
      }

      response.raw.companies = companies;
      response.update('text/plain', 'utf-8');

      return next();
    });
  } else if (request.route.tags.count('company') > 0 && exports.isDefined(response.raw.company)) {
    response.raw.company = exports.process(response.raw.company);
    response.update('text/plain', 'utf-8');

    return next();
  } else {
    return next();
  }
};
Exemplo n.º 2
0
exports.process = function process(company, callback) {
  if (arguments.length === 0) {
    return null;
  }

  if (checks.isObject(company)) {

    if (checks.isFunction(company.toObject)) {
      company = company.toObject();
    }

    delete company.__v;
    delete company._id;
    delete company.lastUpdated;
    delete company.created;
    delete company.Grid;
    delete company.Segment;
    delete company.checksum;
  }

  if (arguments.length === 1) {
    return company;
  }

  return callback(null, company);
};
Exemplo n.º 3
0
 self.fetchSession(session.sessionId, self.options.ironPassword).done(function(result) {
   if (result) {
     if (stockpile.checks.isObject(result)) {
       return callback(null, true, result);
     } else if (stockpile.checks.isString(result)) {
       return callback(null, true, JSON.parse(result));
     }
   } else {
     return callback(null, false);
   }
 }, function(error) {
Exemplo n.º 4
0
exports.transform = function transform(request, next) {
  if (checks.isUndefined(request.route.tags)) {
    return next();
  }

  var response = request.response();

  if (!response.raw) {
    return next();
  }


  if (request.route.tags.count('files') > 0 && checks.isDefined(response.raw.files)) {
    async.map(response.raw.files, exports.process, function(err, files) {
      if (err) {
        return next(Hapi.error.internal('', err));
      }

      if (checks.isArray(files) && files.length > 0) {
        if (request.route.tags.count('override') > 0) {
          response.raw.files = files;
          response.update('text/plain', 'utf-8');
        } else {
          response.raw.files = files.exclude(function(f) {
            return f.flags.available === false && f.flags.pending === false;
          });
        }
      }

      return next();
    });

  } else if (request.route.tags.count('file') > 0 && checks.isDefined(response.raw.file)) {
    var file = exports.process(response.raw.file);

    if (request.route.tags.count('override') > 0) {
      response.raw.file = file;
      response.update('text/plain', 'utf-8');
    } else {
      if (file.flags.available === false && file.flags.pending === false) {
        response.raw.file = null;
      } else {
        response.raw.file = file;
      }

      response.update('text/plain', 'utf-8');
    }

    return next();
  } else {
    return next();
  }
};
Exemplo n.º 5
0
    async.map(response.raw.files, exports.process, function(err, files) {
      if (err) {
        return next(Hapi.error.internal('', err));
      }

      if (checks.isArray(files) && files.length > 0) {
        if (request.route.tags.count('override') > 0) {
          response.raw.files = files;
          response.update('text/plain', 'utf-8');
        } else {
          response.raw.files = files.exclude(function(f) {
            return f.flags.available === false && f.flags.pending === false;
          });
        }
      }

      return next();
    });
Exemplo n.º 6
0
exports.process = function process(file, callback) {
  if (arguments.length === 0 || checks.isUndefined(file)) {
    return null;
  }

  if (checks.isFunction(file.toObject)) {
    file = file.toObject();
  }

  file.folder = file.folder.id;
  file.owner = userProcessor.deepProcess(file.owner);

  for (var i = 0; i < file.users.length; i += 1) {
    file.users[i] = userProcessor.deepProcess(file.users[i]);
  }

  delete file.grid;
  delete file.legacyId;

  delete file._id;
  delete file.__v;

  // create a new moment() that is === to the
  // date the file was created on, it will be
  // incremented below
  var closeDate = moment(file.created);

  // normalize the hours to the be end of the day
  closeDate.hours(23);
  closeDate.minutes(59);
  closeDate.seconds(59);

  // run through the checks and modify the date as needed
  if (checks.isDefined(file.flags)) {
    if (file.flags.pending) {
      closeDate.add('years', 99);
    } else if (file.flags.itar) {
      closeDate.add('days', 7);
    } else if (file.flags.timeSensitive) {
      closeDate = moment(file.flags.timeSensitiveExpiration);

    } else if (file.flags.hidden) {
      closeDate.subtract('years', 99);
    } else {
      closeDate.add('years', 99);
    }

    // assign the date to the closesOn property
    file.closesOn = closeDate.toDate();

    if (file.flags.pending === true || file.flags.hidden === true) {
      file.flags.available = false;
    } else {
      var now = moment();

      // check if the close date is after right now
      file.flags.available = closeDate.isAfter(now);

      if (file.flags.available === false) {
        file.flags.hidden = true;
      }
    }
  }

  if (arguments.length === 1) {
    return file;
  }

  return callback(null, file);
};