diff --git a/src/frontend/js/api/joanie/gen/index.ts b/src/frontend/js/api/joanie/gen/index.ts index dc13002391..3de95046e2 100644 --- a/src/frontend/js/api/joanie/gen/index.ts +++ b/src/frontend/js/api/joanie/gen/index.ts @@ -15,10 +15,13 @@ export type { CertificationDefinition } from './models/CertificationDefinition'; export type { Course } from './models/Course'; export type { CourseRun } from './models/CourseRun'; export type { CreditCard } from './models/CreditCard'; +export type { EmptyResponse } from './models/EmptyResponse'; export { Enrollment } from './models/Enrollment'; +export type { ErrorResponse } from './models/ErrorResponse'; export { Order } from './models/Order'; +export type { OrderAbortBody } from './models/OrderAbortBody'; export { OrderCreateBody } from './models/OrderCreateBody'; -export { OrderCreateResponse } from './models/OrderCreateResponse'; +export type { OrderCreateResponse } from './models/OrderCreateResponse'; export type { Payment } from './models/Payment'; export { Product } from './models/Product'; diff --git a/src/frontend/js/api/joanie/gen/models/Order.ts b/src/frontend/js/api/joanie/gen/models/Order.ts index 972500d6d7..9432b91f4e 100644 --- a/src/frontend/js/api/joanie/gen/models/Order.ts +++ b/src/frontend/js/api/joanie/gen/models/Order.ts @@ -10,7 +10,7 @@ export type Order = { readonly created_on?: string; readonly certificate?: string; readonly enrollments?: string; - readonly id?: string; + id: string; readonly main_invoice?: string; organization?: string; readonly owner?: string; diff --git a/src/frontend/js/api/joanie/gen/models/OrderCreateBody.ts b/src/frontend/js/api/joanie/gen/models/OrderCreateBody.ts index c2d4c622bd..0c45302b70 100644 --- a/src/frontend/js/api/joanie/gen/models/OrderCreateBody.ts +++ b/src/frontend/js/api/joanie/gen/models/OrderCreateBody.ts @@ -12,7 +12,7 @@ export type OrderCreateBody = { readonly created_on?: string; readonly certificate?: string; readonly enrollments?: string; - readonly id?: string; + id: string; readonly main_invoice?: string; organization?: string; readonly owner?: string; diff --git a/src/frontend/js/api/joanie/gen/models/OrderCreateResponse.ts b/src/frontend/js/api/joanie/gen/models/OrderCreateResponse.ts index 313fef4ab8..27bc0fe147 100644 --- a/src/frontend/js/api/joanie/gen/models/OrderCreateResponse.ts +++ b/src/frontend/js/api/joanie/gen/models/OrderCreateResponse.ts @@ -2,37 +2,11 @@ /* tslint:disable */ /* eslint-disable */ +import type { Order } from './Order'; import type { Payment } from './Payment'; export type OrderCreateResponse = { - course: string; - /** - * date and time at which a record was created - */ - readonly created_on?: string; - readonly certificate?: string; - readonly enrollments?: string; - id: string; - readonly main_invoice?: string; - organization?: string; - readonly owner?: string; - readonly total?: number; - readonly total_currency?: string; - product: string; - readonly state?: OrderCreateResponse.state; - readonly target_courses?: string; + order: Order; payment_info?: Payment; }; -export namespace OrderCreateResponse { - - export enum state { - PENDING = 'pending', - CANCELED = 'canceled', - FAILED = 'failed', - VALIDATED = 'validated', - } - - -} - diff --git a/src/frontend/js/api/joanie/gen/services/CertificatesService.ts b/src/frontend/js/api/joanie/gen/services/CertificatesService.ts index b75c1f9f01..098976ae31 100644 --- a/src/frontend/js/api/joanie/gen/services/CertificatesService.ts +++ b/src/frontend/js/api/joanie/gen/services/CertificatesService.ts @@ -66,12 +66,12 @@ export class CertificatesService { /** * Retrieve a certificate through its id if it is owned by the authenticated user. * @param id - * @returns Certificate + * @returns binary File Attachment * @throws ApiError */ public certificatesDownload( id: string, - ): CancelablePromise { + ): CancelablePromise { return this.httpRequest.request({ method: 'GET', url: '/certificates/{id}/download/', diff --git a/src/frontend/js/api/joanie/gen/services/OrdersService.ts b/src/frontend/js/api/joanie/gen/services/OrdersService.ts index e27c546fcf..5449b7c282 100644 --- a/src/frontend/js/api/joanie/gen/services/OrdersService.ts +++ b/src/frontend/js/api/joanie/gen/services/OrdersService.ts @@ -2,6 +2,7 @@ /* tslint:disable */ /* eslint-disable */ import type { Order } from '../models/Order'; +import type { OrderAbortBody } from '../models/OrderAbortBody'; import type { OrderCreateBody } from '../models/OrderCreateBody'; import type { OrderCreateResponse } from '../models/OrderCreateResponse'; @@ -101,13 +102,13 @@ export class OrdersService { * Abort a pending order and the related payment if there is one. * @param id * @param data - * @returns Order + * @returns void * @throws ApiError */ public ordersAbort( id: string, - data: Order, - ): CancelablePromise { + data: OrderAbortBody, + ): CancelablePromise { return this.httpRequest.request({ method: 'POST', url: '/orders/{id}/abort/', @@ -122,18 +123,23 @@ export class OrdersService { * Retrieve an invoice through its reference if it is related to * the order instance and owned by the authenticated user. * @param id - * @returns Order + * @param reference + * @returns binary File Attachment * @throws ApiError */ public ordersInvoice( id: string, - ): CancelablePromise { + reference: string, + ): CancelablePromise { return this.httpRequest.request({ method: 'GET', url: '/orders/{id}/invoice/', path: { 'id': id, }, + query: { + 'reference': reference, + }, }); } diff --git a/src/frontend/js/api/joanie/gen/services/ProductsService.ts b/src/frontend/js/api/joanie/gen/services/ProductsService.ts index 4d85fd8395..baf269398f 100644 --- a/src/frontend/js/api/joanie/gen/services/ProductsService.ts +++ b/src/frontend/js/api/joanie/gen/services/ProductsService.ts @@ -19,7 +19,7 @@ export class ProductsService { */ public productsRead( id: string, - course?: string, + course: string, ): CancelablePromise { return this.httpRequest.request({ method: 'GET', diff --git a/src/frontend/js/components/PaymentButton/index.spec.tsx b/src/frontend/js/components/PaymentButton/index.spec.tsx index f3a75d04a7..f8c4724219 100644 --- a/src/frontend/js/components/PaymentButton/index.spec.tsx +++ b/src/frontend/js/components/PaymentButton/index.spec.tsx @@ -1,4 +1,4 @@ -import { act, fireEvent, render, screen, waitFor, cleanup } from '@testing-library/react'; +simport { act, fireEvent, render, screen, waitFor, cleanup } from '@testing-library/react'; import fetchMock from 'fetch-mock'; import { PropsWithChildren } from 'react'; import { IntlProvider } from 'react-intl'; diff --git a/src/frontend/js/components/PaymentButton/index.tsx b/src/frontend/js/components/PaymentButton/index.tsx index 94281bc0e0..ffbc3abcd9 100644 --- a/src/frontend/js/components/PaymentButton/index.tsx +++ b/src/frontend/js/components/PaymentButton/index.tsx @@ -122,9 +122,9 @@ const PaymentButton = ({ product, billingAddress, creditCard, onSuccess }: Payme product: product.id!, }, { - onSuccess: (order) => { + onSuccess: ({ order, payment_info }) => { paymentInfos = { - ...order.payment_info, + ...payment_info, order_id: order.id, }; setPayment(paymentInfos); diff --git a/src/frontend/js/hooks/useOrders.ts b/src/frontend/js/hooks/useOrders.ts index 5cde9de020..3e3a67fd59 100644 --- a/src/frontend/js/hooks/useOrders.ts +++ b/src/frontend/js/hooks/useOrders.ts @@ -1,11 +1,17 @@ import { defineMessages } from 'react-intl'; import { ApiResourceInterface } from 'types/Joanie'; -import { Order, Product, Course, OrderCreateResponse, OrderCreateBody } from 'api/joanie/gen'; +import { + Order, + Product, + Course, + OrderCreateResponse, + OrderCreateBody, + OrderAbortBody, +} from 'api/joanie/gen'; import { useSessionMutation } from 'utils/react-query/useSessionMutation'; import { joanieApi, isCourse } from 'api/joanie'; import { QueryOptions, - Resource, ResourcesQuery, useResource, useResourcesCustom, @@ -72,10 +78,14 @@ const props: UseResourcesProps) => { const custom = useResourcesCustom({ ...props, filters, queryOptions }); - const abortHandler = useSessionMutation((data: Order) => { + const abortHandler = useSessionMutation((data: OrderAbordData) => { const { id, ...updatedData } = data; if (id) { return joanieApi.orders.ordersAbort(id, updatedData); diff --git a/src/frontend/js/types/Joanie.ts b/src/frontend/js/types/Joanie.ts index bde8eb948e..ef6a32f21e 100644 --- a/src/frontend/js/types/Joanie.ts +++ b/src/frontend/js/types/Joanie.ts @@ -233,8 +233,8 @@ export interface ApiResourceInterface< TResourceQuery extends ResourcesQuery = ResourcesQuery, > { get: (filters?: TResourceQuery) => any; - create?: (payload: any) => Promise; - update?: (payload: any) => Promise; + create?: (payload: any) => Promise; + update?: (payload: any) => Promise; delete?: (id: TData['id']) => Promise; }