mirror of
https://github.com/sergeyyarkov/digital-store.git
synced 2026-10-11 10:19:15 +03:00
142 lines
3.6 KiB
JavaScript
142 lines
3.6 KiB
JavaScript
import axios from "axios";
|
|
|
|
class ApiService {
|
|
constructor(baseUrl) {
|
|
this.url = baseUrl;
|
|
}
|
|
|
|
async getCategory(category) {
|
|
try {
|
|
const request = `${this.url}/api/category/${encodeURIComponent(category)}`;
|
|
return useRequest(request);
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
async getCategories() {
|
|
try {
|
|
const request = `${this.url}/api/categories`;
|
|
return useRequest(request);
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
async getItems(sorting) {
|
|
try {
|
|
if (sorting) {
|
|
const request = `${this.url}/api/items?sorting=${sorting}`;
|
|
return useRequest(request);
|
|
} else {
|
|
const request = `${this.url}/api/items`;
|
|
return useRequest(request);
|
|
}
|
|
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
async getItemsOffset(page) {
|
|
try {
|
|
const request = `${this.url}/api/items/page/${page}`;
|
|
return useRequest(request);
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
async getItemsQuery(text) {
|
|
try {
|
|
const request = `${this.url}/api/items?q=${text}`;
|
|
return useRequest(request);
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
async getItemById(id) {
|
|
try {
|
|
const request = `${this.url}/api/items/id/${id}`;
|
|
return useRequest(request);
|
|
} catch (error) {
|
|
console.log(error)
|
|
}
|
|
}
|
|
|
|
async getDataById(id) {
|
|
try {
|
|
const request = `${this.url}/api/items/data/${id}`;
|
|
return useRequest(request);
|
|
} catch (error) {
|
|
console.log(error)
|
|
}
|
|
}
|
|
|
|
async getItemsOne(category, sorting) {
|
|
try {
|
|
if (sorting) {
|
|
const request = `${this.url}/api/items/${encodeURIComponent(category.toLowerCase())}?sorting=${sorting}`;
|
|
return useRequest(request);
|
|
} else {
|
|
const request = `${this.url}/api/items/${encodeURIComponent(category.toLowerCase())}`;
|
|
return useRequest(request);
|
|
}
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
async getItemsData() {
|
|
try {
|
|
const request = `${this.url}/api/items/data`;
|
|
return useRequest(request);
|
|
} catch (err) {
|
|
console.log(err);
|
|
}
|
|
}
|
|
|
|
async getBuyers() {
|
|
try {
|
|
const request = `${this.url}/api/buyers`;
|
|
return useRequest(request);
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
async getBuyersOffset(page) {
|
|
try {
|
|
const request = `${this.url}/api/buyers/page/${page}`;
|
|
return useRequest(request);
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
async getBillId(bill_id) {
|
|
try {
|
|
const request = `${this.url}/api/buyers/${bill_id}`;
|
|
return useRequest(request);
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
async getIcons() {
|
|
try {
|
|
const request = `${this.url}/api/icons`;
|
|
return useRequest(request);
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
}
|
|
|
|
async function useRequest(request) {
|
|
const response = await axios.get(request);
|
|
return await JSON.parse(response.request.response);
|
|
}
|
|
|
|
export const apiService = new ApiService(document.defaultView.location.origin); |