feat: Enhance server security and performance by adding helmet for security headers, implementing rate limiting, and centralizing error handling; update frontend API calls to use a dedicated api module for consistency
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 4m37s
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 4m37s
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { useState, useEffect, useRef } from 'react';
|
||||
import axios from 'axios';
|
||||
import api from './lib/api.js';
|
||||
import {
|
||||
IconPlus,
|
||||
IconEdit,
|
||||
@@ -114,7 +114,7 @@ function BillingManager() {
|
||||
const fetchBillingData = async () => {
|
||||
setLoading(true);
|
||||
try {
|
||||
const response = await axios.get(`${API_URL}/billing`);
|
||||
const response = await api.get(`/billing`);
|
||||
const normalized = (response.data || []).map((item, idx) => ({
|
||||
id: item.id ?? String(idx + 1),
|
||||
payments: Array.isArray(item.payments)
|
||||
@@ -139,7 +139,7 @@ function BillingManager() {
|
||||
const handleSaveChanges = async () => {
|
||||
setLoading(true);
|
||||
try {
|
||||
await axios.post(`${API_URL}/billing`, { domains: billingData });
|
||||
await api.post(`/billing`, { domains: billingData });
|
||||
setSuccess('Данные успешно сохранены');
|
||||
setTimeout(() => setSuccess(''), 3000);
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user