import { Api } from '~/api/Api' const requestUrl = 'https://wp.koptilnya.xyz/wp-json' const consumerKey = 'ck_8b5477a1573ce6038ef1367f25d95cede1de4559' const consumerSecret = 'cs_d0ccaa93e8efe4f76eef0b70c9828a58fc53459f' const authString = `${consumerKey}:${consumerSecret}` const encodedAuth = btoa(unescape(encodeURIComponent(authString))) // Создаем инстанс API const api = new Api({ baseUrl: requestUrl, securityWorker: (securityData) => { return { headers: { 'Authorization': `Basic ${encodedAuth}`, 'Content-Type': 'application/json', }, } }, }) // Модифицируем методы API Object.keys(api.wc).forEach((namespace) => { const namespaceObj = api.wc[namespace] Object.keys(namespaceObj).forEach((methodName) => { const originalMethod = namespaceObj[methodName] namespaceObj[methodName] = async function (...args: any[]) { try { // Добавляем заголовки аутентификации const lastArg = args[args.length - 1] const options = typeof lastArg === 'object' ? lastArg : {} const modifiedOptions = { ...options, headers: { ...(options.headers || {}), Authorization: `Basic ${encodedAuth}`, }, } const modifiedArgs = typeof lastArg === 'object' ? [...args.slice(0, -1), modifiedOptions] : [...args, modifiedOptions] const response = await originalMethod.apply(this, modifiedArgs) // Получаем тело ответа и парсим JSON const data = await response.json() return data } catch (error) { console.error(`API Error in ${namespace}.${methodName}:`, error) throw error } } }) }) // Переопределяем базовый request const nativeRequest = api.request api.request = async function (...args) { try { const response = await nativeRequest.call(api, ...args) const data = await response.json() return data } catch (error) { console.error('API Request Error:', error) throw error } } export default api