66 lines
2.0 KiB
JavaScript
66 lines
2.0 KiB
JavaScript
export default class ProductsApi {
|
|
constructor(token) {
|
|
this.baseUrl = 'https://inventory-bff.dream-views.com/api/v1/FurnitureVariant';
|
|
this.token = token;
|
|
}
|
|
|
|
headers(json = true) {
|
|
return {
|
|
accept: 'application/json',
|
|
...(json ? { 'Content-Type': 'application/json' } : {}),
|
|
...(this.token ? { Authorization: `Bearer ${this.token}` } : {}),
|
|
};
|
|
}
|
|
|
|
async getAllVariants() {
|
|
const res = await fetch(`${this.baseUrl}/GetAll`, {
|
|
method: 'GET',
|
|
headers: this.headers(false),
|
|
});
|
|
if (!res.ok) throw new Error(`GetAll error ${res.status}: ${await res.text()}`);
|
|
return res.json();
|
|
}
|
|
|
|
// Assuming similar endpoints; adjust names if backend differs.
|
|
async createVariant(payload) {
|
|
const res = await fetch(`${this.baseUrl}/Create`, {
|
|
method: 'POST',
|
|
headers: this.headers(),
|
|
body: JSON.stringify(payload),
|
|
});
|
|
if (!res.ok) throw new Error(`Create error ${res.status}: ${await res.text()}`);
|
|
return res.json();
|
|
}
|
|
|
|
async updateVariant(payload) {
|
|
const res = await fetch(`${this.baseUrl}/Update`, {
|
|
method: 'PUT',
|
|
headers: this.headers(),
|
|
body: JSON.stringify(payload),
|
|
});
|
|
if (!res.ok) throw new Error(`Update error ${res.status}: ${await res.text()}`);
|
|
return res.json();
|
|
}
|
|
|
|
async deleteVariant(payload) {
|
|
// If your API is soft-delete via Update status, reuse updateVariant.
|
|
const res = await fetch(`${this.baseUrl}/Delete`, {
|
|
method: 'DELETE',
|
|
headers: this.headers(),
|
|
body: JSON.stringify(payload),
|
|
});
|
|
if (!res.ok) throw new Error(`Delete error ${res.status}: ${await res.text()}`);
|
|
return res.json();
|
|
}
|
|
|
|
async changeStatusVariant(payload) {
|
|
// If your API is change status, reuse updateVariant.
|
|
const res = await fetch(`${this.baseUrl}/ChangeStatus`, {
|
|
method: 'PATCH',
|
|
headers: this.headers(),
|
|
body: JSON.stringify(payload),
|
|
});
|
|
if (!res.ok) throw new Error(`ChangeStatus error ${res.status}: ${await res.text()}`);
|
|
return res.json();
|
|
}
|
|
} |