import Controller from "@ember/controller";
import { action } from "@ember/object";
import { popupAjaxError } from "discourse/lib/ajax-error";

export default Controller.extend({
  loading: false,

  @action
  revokeKey(key) {
    key.revoke().catch(popupAjaxError);
  },

  @action
  undoRevokeKey(key) {
    key.undoRevoke().catch(popupAjaxError);
  },

  @action
  loadMore() {
    if (this.loading || this.model.loaded) {
      return;
    }

    const limit = 50;

    this.set("loading", true);
    this.store
      .findAll("api-key", { offset: this.model.length, limit })
      .then((keys) => {
        this.model.addObjects(keys);
        if (keys.length < limit) {
          this.model.set("loaded", true);
        }
      })
      .finally(() => {
        this.set("loading", false);
      });
  },
});
