2019-10-28 20:43:32 -04:00
|
|
|
import computed from "ember-addons/ember-computed-decorators";
|
2019-10-17 05:34:26 -04:00
|
|
|
import { ajax } from "discourse/lib/ajax";
|
2019-10-30 20:41:01 -04:00
|
|
|
import Plan from "discourse/plugins/discourse-patrons/discourse/models/plan";
|
2019-10-17 05:34:26 -04:00
|
|
|
|
|
|
|
const Subscription = Discourse.Model.extend({
|
2019-10-28 20:43:32 -04:00
|
|
|
@computed("created")
|
|
|
|
createdFormatted(created) {
|
|
|
|
return moment.unix(created).format();
|
|
|
|
},
|
|
|
|
|
2019-10-30 19:01:41 -04:00
|
|
|
@computed("status")
|
|
|
|
canceled(status) {
|
|
|
|
return status === 'canceled';
|
|
|
|
},
|
|
|
|
|
2019-10-17 05:34:26 -04:00
|
|
|
save() {
|
|
|
|
const data = {
|
|
|
|
customer: this.customer,
|
|
|
|
plan: this.plan
|
|
|
|
};
|
|
|
|
|
|
|
|
return ajax("/patrons/subscriptions", { method: "post", data });
|
2019-10-28 23:35:07 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
destroy() {
|
2019-10-30 19:01:41 -04:00
|
|
|
return ajax(`/patrons/subscriptions/${this.id}`, { method: "delete" }).then(result =>
|
|
|
|
Subscription.create(result)
|
|
|
|
);
|
2019-10-28 23:35:07 -04:00
|
|
|
},
|
2019-10-17 05:34:26 -04:00
|
|
|
});
|
|
|
|
|
2019-10-28 20:43:32 -04:00
|
|
|
Subscription.reopenClass({
|
|
|
|
findAll() {
|
|
|
|
return ajax("/patrons/subscriptions", { method: "get" }).then(result =>
|
2019-10-30 20:41:01 -04:00
|
|
|
result.map(subscription => {
|
|
|
|
subscription.plan = Plan.create(subscription.plan);
|
2019-10-30 21:41:02 -04:00
|
|
|
return Subscription.create(subscription);
|
2019-10-30 20:41:01 -04:00
|
|
|
})
|
2019-10-28 20:43:32 -04:00
|
|
|
);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2019-10-17 05:34:26 -04:00
|
|
|
export default Subscription;
|