text: // # CacheControl Middleware
  // Usage: cacheControl(profile), where profile is one of 'public' or 'private'
  // After: checkIsPrivate
  // Before: routes
  // App: Admin|Site|API
  //
  // Allows each app to declare its own default caching rules
  
  const _   = require('lodash'),
      config = require('../../config');
  
  const cacheControl = function cacheControl(options) {
      const profiles = {
          public: 'public, max-age=' + config.get('caching:frontend:maxAge'),
          private: 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0'
      };
  
      let output;
  
      if (_.isString(options) && profiles.hasOwnProperty(options)) {
          output = profiles[options];
      }
  
      return function cacheControlHeaders(req, res, next) {
          if (output) {
              if (res.isPrivateBlog) {
                  res.set({'Cache-Control': profiles.private});
              } else {
                  res.set({'Cache-Control': output});
              }
          }
          next();
      };
  };
  
  module.exports = cacheControl;
  