discourse-subscriptions/assets/javascripts/discourse/models/admin-product.js

59 lines
1.3 KiB
JavaScript

import { ajax } from "discourse/lib/ajax";
import EmberObject from "@ember/object";
const AdminProduct = EmberObject.extend({
isNew: false,
metadata: {},
destroy() {
return ajax(`/s/admin/products/${this.id}`, { method: "delete" });
},
save() {
const data = {
name: this.name,
statement_descriptor: this.statement_descriptor,
metadata: this.metadata,
active: this.active,
};
return ajax("/s/admin/products", {
method: "post",
data,
}).then((product) => AdminProduct.create(product));
},
update() {
const data = {
name: this.name,
statement_descriptor: this.statement_descriptor,
metadata: this.metadata,
active: this.active,
};
return ajax(`/s/admin/products/${this.id}`, {
method: "patch",
data,
});
},
});
AdminProduct.reopenClass({
findAll() {
return ajax("/s/admin/products", { method: "get" }).then((result) => {
if (result === null) {
return { unconfigured: true };
}
return result.map((product) => AdminProduct.create(product));
});
},
find(id) {
return ajax(`/s/admin/products/${id}`, {
method: "get",
}).then((product) => AdminProduct.create(product));
},
});
export default AdminProduct;