code: function Favicon_onRequest(api) {
  
          var url = api.parsedUrl.pathname,
              maxAge = 60 * 60 * 24 * 30 * 12,  // one year
              filePath,
              mimeType;
  
          if (this.config.skip) {
              url = url.replace(this.regex, '');
          }
  
          filePath = di.normalizePath(this.config.path + url);
  
          mimeType = this.mimeType(filePath);
  
          if (!mimeType) {
              logger.info('Assets.onRequest.mimeType: missing', {
                  mimeType: mimeType,
                  filePath: filePath
              });
              return this.handleError(function() {
                  new error.HttpError(500, {path: filePath}, 'Invalid mime type');
              });
          }
  
          if (api.getMethod() !== 'GET') {
              return this.handleError(function() {
                  new error.HttpError(500, {path: filePath}, 'Assets are accessible only via GET request');
              });
          }
  
          return new Promise(function (resolve, reject) {
  
              this.readFile(filePath, function (err, file) {
  
                  if (err) {
                      try {
                          new error.HttpError(500, {path: filePath}, 'No file found', err);
                      } catch (e) {
                          return reject(e);
                      }
                  }
  
                  api.addHeader('Content-Type', mimeType);
                  api.addHeader('Cache-Control', 'public, max-age=' + ~~(maxAge));
                  api.addHeader('ETag', etag(file));
  
  
                  if (api.isHeaderCacheUnModified()) {
                      return resolve(api.sendNoChange());
                  }
  
                  logger.info('Assets.onRequest.mimeType:', {
                      mimeType: mimeType,
                      filePath: filePath
                  });
                  resolve(file);
              });
          }.bind(this));
  
      }
docs: @since 0.0.1
  @author Igor Ivanovic
  @method Favicon#onRequest
  
  @description
  On request handle favicon
  @return {object}