From 3b37135e10ecfa2f05faeaadd268403d30ae9a26 Mon Sep 17 00:00:00 2001 From: Notsmartname Date: Mon, 13 May 2024 15:53:16 +0500 Subject: [PATCH] Fix api --- src/modules/AboutShelter/AboutShelter.jsx | 13 +++++--- src/modules/AboutShelter/api.js | 38 ++++++++++++----------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/src/modules/AboutShelter/AboutShelter.jsx b/src/modules/AboutShelter/AboutShelter.jsx index 7d4632d0..2440ed22 100644 --- a/src/modules/AboutShelter/AboutShelter.jsx +++ b/src/modules/AboutShelter/AboutShelter.jsx @@ -9,13 +9,12 @@ import EditIcon from '../../images/EditIcon/EditIcon'; import DeleteIcon from '../../images/DeleteIcon/DeleteIcon'; import ShelterOwnerStatistics from '../ShelterOwnerStatistics/ShelterOwnerStatistics'; import petLogo from '../../images/pet.jpg'; -import setPayment from './api'; +import { setPayment } from './api'; // TODO переделать названия классов (объединить?), не совсем понятно, по какому принципу about-shelter, shelter-info const AboutShelter = () => { const { shelter, isOwner, isLoading } = useOutletContext(); - console.log(shelter); if (isLoading) { return null; } @@ -23,9 +22,13 @@ const AboutShelter = () => { // TODO подключить рероутер на редактирование инфо о приюте (6.2.1.4 в фигме) // TODO сделать попап при удалении приюта (6.2.1.3 в фигме) - const handleSetPayment = () => { - // let token = localStorage.getItem('access'); - setPayment(localStorage.getItem('access')); + const handleSetPayment = async () => { + try { + const paymentConfirmUrl = await setPayment(); + window.open(paymentConfirmUrl, '_blank'); + } catch (error) { + throw new Error(error.message); + } }; return ( diff --git a/src/modules/AboutShelter/api.js b/src/modules/AboutShelter/api.js index 42b560ed..ec2941c0 100644 --- a/src/modules/AboutShelter/api.js +++ b/src/modules/AboutShelter/api.js @@ -1,22 +1,24 @@ -import { baseUrl } from '../../utils/constants'; +import { baseUrl, apiHeaders } from '../../utils/constants'; -const setPayment = async (token) => { - // Перенаправить на страницу OAuth-сервера ЮKassa - const response = await fetch(`${baseUrl}/v1/payments/get-partner-link/`, { - method: 'GET', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - authorization: `Bearer ${token}`, - }, - redirect: 'follow' - }).then( - console.log('OK') - ); +// eslint-disable-next-line +export const setPayment = async (id, amount) => { + try { + if (localStorage.getItem('access')) { + const token = localStorage.getItem('access'); + apiHeaders.authorization = `Bearer ${token}`; + } + const response = await fetch(`${baseUrl}/v1/payments/get-partner-link/`, { + method: 'GET', + headers: apiHeaders, + }); - if (!response.ok) { - throw new Error(`HTTP error! Status: ${response.status}`); + if (response.ok) { + const data = await response.json(); + delete apiHeaders.authorization; + return data.partner_link; + } + throw new Error('Ошибка при отправке запроса'); + } catch (error) { + throw new Error('Ошибка:', error); } - }; -export default setPayment;