first commit

This commit is contained in:
Bivekich
2025-06-26 06:59:59 +03:00
commit d44874775c
450 changed files with 76635 additions and 0 deletions

View File

@ -0,0 +1,59 @@
import { PartsIndexCatalogsResponse, PartsIndexGroup } from '@/types/partsindex';
const PARTS_INDEX_API_BASE = 'https://api.parts-index.com';
const API_KEY = 'PI-E1C0ADB7-E4A8-4960-94A0-4D9C0A074DAE';
class PartsIndexService {
/**
* Получить список каталогов
*/
async getCatalogs(lang: string = 'ru'): Promise<PartsIndexCatalogsResponse> {
try {
const response = await fetch(
`${PARTS_INDEX_API_BASE}/v1/catalogs?lang=${lang}`,
{
headers: {
'Accept': 'application/json',
},
}
);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return await response.json();
} catch (error) {
console.error('Ошибка получения каталогов Parts Index:', error);
throw error;
}
}
/**
* Получить группы каталога
*/
async getCatalogGroups(catalogId: string, lang: string = 'ru'): Promise<PartsIndexGroup> {
try {
const response = await fetch(
`${PARTS_INDEX_API_BASE}/v1/catalogs/${catalogId}/groups?lang=${lang}`,
{
headers: {
'Accept': 'application/json',
'Authorization': API_KEY,
},
}
);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return await response.json();
} catch (error) {
console.error(`Ошибка получения групп каталога ${catalogId}:`, error);
throw error;
}
}
}
export const partsIndexService = new PartsIndexService();