2020-05-28 10:32:57 -05:00
|
|
|
import discourseComputed from "discourse-common/utils/decorators";
|
2019-10-14 12:36:46 +11:00
|
|
|
import { ajax } from "discourse/lib/ajax";
|
2020-05-06 19:06:14 -03:00
|
|
|
import EmberObject from "@ember/object";
|
2020-07-07 13:50:16 -05:00
|
|
|
import getURL from "discourse-common/lib/get-url";
|
2019-10-14 12:36:46 +11:00
|
|
|
|
2020-05-06 19:06:14 -03:00
|
|
|
const AdminSubscription = EmberObject.extend({
|
2020-05-28 10:32:57 -05:00
|
|
|
@discourseComputed("status")
|
2019-11-14 10:51:04 +11:00
|
|
|
canceled(status) {
|
|
|
|
|
return status === "canceled";
|
|
|
|
|
},
|
|
|
|
|
|
2020-05-28 10:32:57 -05:00
|
|
|
@discourseComputed("metadata")
|
2019-11-13 15:27:32 +11:00
|
|
|
metadataUserExists(metadata) {
|
|
|
|
|
return metadata.user_id && metadata.username;
|
|
|
|
|
},
|
|
|
|
|
|
2020-05-28 10:32:57 -05:00
|
|
|
@discourseComputed("metadata")
|
2019-11-13 15:27:32 +11:00
|
|
|
subscriptionUserPath(metadata) {
|
2020-07-15 08:44:40 -05:00
|
|
|
return getURL(`/admin/users/${metadata.user_id}/${metadata.username}`);
|
2019-11-14 10:51:04 +11:00
|
|
|
},
|
|
|
|
|
|
2020-10-29 10:31:12 -05:00
|
|
|
destroy(refund) {
|
|
|
|
|
const data = {
|
2021-11-10 11:00:39 +10:00
|
|
|
refund,
|
2020-10-29 10:31:12 -05:00
|
|
|
};
|
2019-12-03 10:29:44 +11:00
|
|
|
return ajax(`/s/admin/subscriptions/${this.id}`, {
|
2020-09-16 09:53:50 -05:00
|
|
|
method: "delete",
|
2020-10-29 10:31:12 -05:00
|
|
|
data,
|
2020-09-16 09:53:50 -05:00
|
|
|
}).then((result) => AdminSubscription.create(result));
|
|
|
|
|
},
|
2019-11-13 14:21:21 +11:00
|
|
|
});
|
2019-10-14 12:36:46 +11:00
|
|
|
|
|
|
|
|
AdminSubscription.reopenClass({
|
|
|
|
|
find() {
|
2019-12-03 10:29:44 +11:00
|
|
|
return ajax("/s/admin/subscriptions", {
|
2020-09-16 09:53:50 -05:00
|
|
|
method: "get",
|
|
|
|
|
}).then((result) => {
|
2020-05-28 10:32:57 -05:00
|
|
|
if (result === null) {
|
|
|
|
|
return { unconfigured: true };
|
|
|
|
|
}
|
2021-02-05 11:57:53 -06:00
|
|
|
result.data = result.data.map((subscription) =>
|
2020-09-16 09:53:50 -05:00
|
|
|
AdminSubscription.create(subscription)
|
|
|
|
|
);
|
2021-02-05 11:57:53 -06:00
|
|
|
return result;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
loadMore(lastRecord) {
|
|
|
|
|
return ajax(`/s/admin/subscriptions?last_record=${lastRecord}`, {
|
|
|
|
|
method: "get",
|
|
|
|
|
}).then((result) => {
|
|
|
|
|
result.data = result.data.map((subscription) =>
|
|
|
|
|
AdminSubscription.create(subscription)
|
|
|
|
|
);
|
|
|
|
|
return result;
|
2020-05-28 10:32:57 -05:00
|
|
|
});
|
2020-09-16 09:53:50 -05:00
|
|
|
},
|
2019-10-14 12:36:46 +11:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
export default AdminSubscription;
|