Sha256: d055ab0e2a67bd50581b25cab832d17eed702b7197a744af36e554b312e3a19a

Contents?: true

Size: 1.66 KB

Versions: 9

Compression:

Stored size: 1.66 KB

Contents

(function() {
  function errorHandler(error, callback) {
    if (error) {
      callback && callback(error);
      throw error;
    }
  }

  function pageview(_AV  ,options) {
    var AV = _AV;
    var appId, appKey, appClass;
    appId = options.appId;
    appKey = options.appKey;
    appClass = options.appClass;
    AV.init({
      appId: appId,
      appKey: appKey
    });
    return {
      get: get,
      increase: increase
    };

    function searchKey(key) {
      var query = new AV.Query(appClass);
      query.equalTo('key', key);
      return query.first();
    }

    function insert(key, title) {
      var Blog = AV.Object.extend(appClass);
      var blog = new Blog();
      blog.set('title', title);
      blog.set('key', key);
      blog.set('views', 0);
      return blog.save();
    }

    function increment(result) {
      result.increment('views', 1);
      return result.save(null, {
        fetchWhenSave: true
      });
    }

    function get(key, callback) {
      searchKey(key).then(function(result) {
        if (result) {
          callback && callback(result.attributes.views);
        }
      }, errorHandler);
    }

    function increase(key, title, callback) {
      searchKey(key).then(function(result) {
        if (result) {
          increment(result).then(function(result) {
            callback && callback(result.attributes.views);
          });
        } else {
          insert(key, title).then(function(result) {
            increment(result).then(function(result) {
              callback && callback(result.attributes.views);
            });
          }, errorHandler);
        }
      }, errorHandler);
    }
  }
  window.pageview = pageview;
})();

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
jekyll-text-theme-2.2.4 _includes/pageview-providers/leancloud/leancloud.js
jekyll-text-theme-2.2.3 _includes/pageview-providers/leancloud/leancloud.js
jekyll-text-theme-2.2.2 _includes/pageview-providers/leancloud/leancloud.js
jekyll-text-theme-2.2.1 _includes/pageview-providers/leancloud/leancloud.js
jekyll-text-theme-2.2.0 _includes/pageview-providers/leancloud/leancloud.js
jekyll-text-theme-2.1.0 _includes/pageview-providers/leancloud/leancloud.js
jekyll-text-theme-2.0.2 _includes/pageview-providers/leancloud/leancloud.js
jekyll-text-theme-2.0.1 _includes/pageview-providers/leancloud/leancloud.js
jekyll-text-theme-2.0.0 _includes/pageview-providers/leancloud/leancloud.js