mirror of
https://github.com/sergeyyarkov/digital-store.git
synced 2026-10-11 10:19:15 +03:00
79 lines
2.1 KiB
JavaScript
79 lines
2.1 KiB
JavaScript
const axios = require('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 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 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('http://localhost:3000'); |