const AdminDashboard = Discourse.Model.extend({});

AdminDashboard.reopenClass({

  /**
    Fetch all dashboard data. This can be an expensive request when the cached data
    has expired and the server must collect the data again.

    @method find
    @return {jqXHR} a jQuery Promise object
  **/
  find: function() {
    return Discourse.ajax("/admin/dashboard.json").then(function(json) {
      var model = AdminDashboard.create(json);
      model.set('loaded', true);
      return model;
    });
  },

  /**
    Only fetch the list of problems that should be rendered on the dashboard.
    The model will only have its "problems" attribute set.

    @method fetchProblems
    @return {jqXHR} a jQuery Promise object
  **/
  fetchProblems: function() {
    return Discourse.ajax("/admin/dashboard/problems.json", {
      type: 'GET',
      dataType: 'json'
    }).then(function(json) {
      var model = AdminDashboard.create(json);
      model.set('loaded', true);
      return model;
    });
  }
});

export default AdminDashboard;