Skip to content

Commit 2860484

Browse files
authored
Merge pull request #38 from teacoder-team/dev
Dev
2 parents 82f26b7 + 412099d commit 2860484

File tree

18 files changed

+131
-89
lines changed

18 files changed

+131
-89
lines changed

src/api/generated/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ export * from './mfaStatusResponse';
5757
export * from './passkeyResponse';
5858
export * from './passwordResetRequest';
5959
export * from './patchUserRequest';
60+
export * from './paymentMethodResponse';
61+
export * from './paymentMethodResponseId';
6062
export * from './progressResponse';
6163
export * from './publicKeyCredentialParameter';
6264
export * from './registerPasskeyRequest';

src/api/generated/mfaControllerVerifyBody.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,8 @@
55
* API for Teacoder educational platform
66
* OpenAPI spec version: 1.0.0
77
*/
8-
// @ts-nocheck
9-
import type { MfaPasskeyRequest } from './mfaPasskeyRequest'
10-
import type { MfaRecoveryRequest } from './mfaRecoveryRequest'
11-
import type { MfaTotpRequest } from './mfaTotpRequest'
8+
import type { MfaTotpRequest } from './mfaTotpRequest';
9+
import type { MfaPasskeyRequest } from './mfaPasskeyRequest';
10+
import type { MfaRecoveryRequest } from './mfaRecoveryRequest';
1211

13-
export type MfaControllerVerifyBody =
14-
| MfaTotpRequest
15-
| MfaPasskeyRequest
16-
| MfaRecoveryRequest
12+
export type MfaControllerVerifyBody = MfaTotpRequest | MfaPasskeyRequest | MfaRecoveryRequest;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
* Generated by orval v7.4.1 🍺
3+
* Do not edit manually.
4+
* TeaCoder API
5+
* API for Teacoder educational platform
6+
* OpenAPI spec version: 1.0.0
7+
*/
8+
import type { PaymentMethodResponseId } from './paymentMethodResponseId';
9+
10+
export interface PaymentMethodResponse {
11+
/** Unique identifier of the payment method */
12+
id: PaymentMethodResponseId;
13+
/** Display name of the payment method */
14+
name: string;
15+
/** Description of the payment method */
16+
description: string;
17+
/** Indicates whether this payment method is available for the user */
18+
isAvailable: boolean;
19+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* Generated by orval v7.4.1 🍺
3+
* Do not edit manually.
4+
* TeaCoder API
5+
* API for Teacoder educational platform
6+
* OpenAPI spec version: 1.0.0
7+
*/
8+
9+
/**
10+
* Unique identifier of the payment method
11+
*/
12+
export type PaymentMethodResponseId = typeof PaymentMethodResponseId[keyof typeof PaymentMethodResponseId];
13+
14+
15+
// eslint-disable-next-line @typescript-eslint/no-redeclare
16+
export const PaymentMethodResponseId = {
17+
BANK_CARD: 'BANK_CARD',
18+
SBP: 'SBP',
19+
YOOMONEY: 'YOOMONEY',
20+
CRYPTO: 'CRYPTO',
21+
INTERNATIONAL_CARD: 'INTERNATIONAL_CARD',
22+
TELEGRAM_STARS: 'TELEGRAM_STARS',
23+
} as const;

src/api/hooks/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export * from './useFetchMfaStatus'
22
export * from './useFetchSsoStauts'
33
export * from './useGetMe'
4+
export * from './useGetPaymentMethods'
45
export * from './useGetSessions'
56
export * from './useInitPayment'
67
export * from './useLogin'
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { type UseQueryOptions, useQuery } from '@tanstack/react-query'
2+
3+
import type { PaymentMethodResponse } from '../generated'
4+
import { getPaymentMethods } from '../requests'
5+
6+
export const useGetPaymentMethods = (
7+
options?: Omit<
8+
UseQueryOptions<PaymentMethodResponse[], unknown>,
9+
'queryKey' | 'queryFn'
10+
>
11+
) =>
12+
useQuery({
13+
queryKey: ['get payment methods'],
14+
queryFn: getPaymentMethods,
15+
...options
16+
})

src/api/hooks/useInitPayment.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { type UseMutationOptions, useMutation } from '@tanstack/react-query'
22

33
import { InitPaymentRequest } from '../generated'
4-
import { initPayment } from '../requests/payment'
4+
import { initPayment } from '../requests'
55

66
export const useInitPayment = (
77
options?: Omit<

src/api/hooks/useVerifyMfa.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
type VerifyRecoveryRequest,
77
type VerifyTotpRequest,
88
verifyMfa
9-
} from '../requests/mfa'
9+
} from '../requests'
1010

1111
type MfaVerifyRequest =
1212
| VerifyTotpRequest

src/api/requests/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ export * from './course'
33
export * from './lesson'
44
export * from './mfa'
55
export * from './passkey'
6+
export * from './payment'
67
export * from './progress'
78
export * from './restriction'
89
export * from './session'

src/api/requests/payment.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
import { instance } from '../instance'
1+
import type { InitPaymentResponse, PaymentMethodResponse } from '../generated'
2+
import { api, instance } from '../instance'
3+
4+
export const getPaymentMethods = async () =>
5+
await api
6+
.get<PaymentMethodResponse[]>('/payment/methods')
7+
.then(res => res.data)
28

39
export const initPayment = async (data: { method: string }) =>
4-
await instance.post('/payment/init', data).then(res => res.data)
10+
await instance
11+
.post<InitPaymentResponse>('/payment/init', data)
12+
.then(res => res.data)

0 commit comments

Comments
 (0)