All files / src/services paymentService.ts

100% Statements 6/6
100% Branches 0/0
100% Functions 2/2
100% Lines 6/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47                  1x           1x           1x                   1x         1x         1x          
import axios from 'axios';
import { API_BASE_URL } from '../config';
import type { PaymentInitData, PaymentStatusResponse } from '../types/apiResponse';
 
export async function createPayment(
  cart_id: string, 
  token: string, 
  lang: string,
): Promise<{ status: number; data: PaymentInitData }> {
  const headers: Record<string, string> = {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${token}`,
    'Accept-Language': lang
  };
 
  const response = await axios.post<{ data: PaymentInitData }>(
    `${API_BASE_URL}/api/payments`,
    { cart_id, payment_method: 'stripe' },
    { headers, timeout: 10000 },
  );
 
  return {
    status: response.status,
    data: response.data.data,
  };
}
 
export async function getPaymentStatus(
  uuid: string,
  token: string,
): Promise<{ status: number; data: PaymentStatusResponse }> {
  const headers: Record<string, string> = {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${token}`,
  };
 
  const response = await axios.get<PaymentStatusResponse>(
    `${API_BASE_URL}/api/payments/${uuid}`,
    { headers, timeout: 10000 },
  );
 
  return {
    status: response.status,
    data: response.data,
  };
}