import Controller from "@ember/controller"; import discourseComputed from "discourse-common/utils/decorators"; import CustomWizardPro from "../models/custom-wizard-pro"; import { alias } from "@ember/object/computed"; export default Controller.extend({ messageUrl: "https://thepavilion.io/t/3652", messageType: 'info', messageKey: null, showSubscription: alias('model.authentication.active'), setup() { const authentication = this.get('model.authentication'); const subscription = this.get('model.subscription'); const subscribed = subscription && subscription.active; const authenticated = authentication && authentication.active; if (!subscribed) { this.set('messageKey', authenticated ? 'not_subscribed' : 'authorize'); } else { this.set('messageKey', !authenticated ? 'subscription_expiring' : subscribed ? 'subscription_active' : 'subscription_inactive' ); } }, @discourseComputed('model.server') messageOpts(server) { return { server }; }, actions: { unauthorize() { this.set('unauthorizing', true); CustomWizardPro.unauthorize().then(result => { if (result.success) { this.setProperties({ messageKey: 'unauthorized', messageType: 'warn', "model.authentication": null, "model.subscription": null }); } else { this.setProperties({ messageKey: 'unauthorize_failed', messageType: 'error' }); } }).finally(() => { this.set('unauthorizing', false); }) } } });