reset commit

parent e55bd6b3
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
import { RootState } from '../../main';
export const apiSlice = createApi({
reducerPath: 'api',
baseQuery: fetchBaseQuery({
baseUrl: "http://77.243.80.217:8080/esutd/api",
prepareHeaders: (headers, { getState }) => {
const state = getState() as RootState;
const accessToken = state.auth.token;
if (accessToken) {
headers.set("Authorization", `Bearer ${accessToken}`);
}
headers.set("Content-Type", "application/json");
headers.set("Accept", "application/json");
return headers;
},
}),
tagTypes: ["organizations", "requests"],
endpoints: () => ({}),
});
\ No newline at end of file
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
import { RootState } from '../../main';
interface Organization {
id: number;
bin: string;
code: string;
name: string;
status: number;
created: string;
deleted: null;
login: string;
password: string;
host: string;
}
export const apiSlice = createApi({
reducerPath: 'api',
baseQuery: fetchBaseQuery({
baseUrl: "/esutd/api/organizations",
prepareHeaders: (headers, { getState }) => {
const state = getState() as RootState;
const accessToken = state.auth.token;
if (accessToken) {
headers.set("Authorization", `Bearer ${accessToken}`);
}
headers.set("Content-Type", "application/json");
headers.set("Accept", "application/json");
return headers;
},
}),
tagTypes: ["organizations"],
endpoints: (builder) => ({
getOrganizations: builder.query<Organization[], void>({
query: () => '/list',
providesTags: ["organizations"],
}),
getOrganization: builder.query<Organization, string>({
query: (orgId) => `/info?id=${orgId}`,
}),
addNewOrganization: builder.mutation<Organization, Partial<Organization>>({
query: (initialOrg) => ({
url: '/save',
method: 'POST',
body: initialOrg,
}),
invalidatesTags: ["organizations"],
}),
editOrganization: builder.mutation<Organization, Partial<Organization>>({
query: ({ id, ...rest }) => ({
url: `/save?id=${id}`,
method: 'POST',
body: rest,
}),
async onQueryStarted(arg, { dispatch, queryFulfilled }) {
try {
const { data } = await queryFulfilled;
dispatch(apiSlice.util.updateQueryData('getOrganizations', undefined, (draft) => {
const index = draft.findIndex(org => org.id === data.id);
if (index !== -1) {
draft[index] = data;
}
}));
} catch {
// handle error
}
},
invalidatesTags: ["organizations"],
}),
deleteOrganization: builder.mutation<{ success: boolean; id: number }, number>({
query: (orgId) => ({
url: `/delete?id=${orgId}`,
method: 'DELETE',
}),
invalidatesTags: ["organizations"],
}),
}),
});
export const {
useGetOrganizationsQuery,
useGetOrganizationQuery,
useAddNewOrganizationMutation,
useEditOrganizationMutation,
useDeleteOrganizationMutation,
} = apiSlice;
......@@ -24,26 +24,16 @@ export const organizationApiSlice = apiSlice.injectEndpoints({
}),
addNewOrganization: builder.mutation<Organization, Partial<Organization>>({
query: (initialOrg) => ({
<<<<<<< HEAD:src/features/api/apiSlice.tsx
url: '/save',
=======
url: 'organizations/save',
>>>>>>> e93810e4a59710e9f9329c2e9ad9fd0a34104287:src/features/api/organizationApiSlice.ts
method: 'POST',
body: initialOrg,
}),
invalidatesTags: ["organizations"],
}),
editOrganization: builder.mutation<Organization, Partial<Organization>>({
<<<<<<< HEAD:src/features/api/apiSlice.tsx
query: ({ ...rest }) => ({
url: `/save`,
method: 'POST',
=======
query: ({ id, ...rest }) => ({
url: `organizations/edit?id=${id}`,
method: 'PUT',
>>>>>>> e93810e4a59710e9f9329c2e9ad9fd0a34104287:src/features/api/organizationApiSlice.ts
body: rest,
}),
invalidatesTags: ["organizations"],
......
......@@ -21,10 +21,15 @@ interface RequestsResponse {
totalCount: number;
}
const getRequestsParams = {
pageNumber: 0,
pageSize: 30
}
export const requestApiSlice = apiSlice.injectEndpoints({
endpoints: (builder) => ({
getRequests: builder.query<RequestsResponse, void>({
query: () => 'requests/list?pageNumber=0&pageSize=30',
query: () => `requests/list?pageNumber=${getRequestsParams.pageNumber}&pageSize=${getRequestsParams.pageSize}`,
providesTags: ["requests"],
}),
addNewRequest: builder.mutation<Request, Partial<Request>>({
......
......@@ -6,6 +6,7 @@ import dayjs from 'dayjs';
export interface DataType {
id: number;
xml: string;
sendDate: string;
errorMessage: string;
resendDate: null;
......@@ -14,7 +15,6 @@ export interface DataType {
esutdOrganizationCode: string;
requestType: string;
documentID: string;
xml: string;
}
export const columns: TableProps<DataType>['columns'] = [
......@@ -27,6 +27,9 @@ export const columns: TableProps<DataType>['columns'] = [
title: "XML",
dataIndex: "xml",
key: "xml",
render: (_, record) => (
<Button type='link' onClick={() => openXMLInNewPage(record.xml)} style={{padding: 0}}>Открыть XML</Button>
),
},
{
title: "Дата отправки",
......@@ -40,7 +43,7 @@ export const columns: TableProps<DataType>['columns'] = [
{
title: "Код организации",
dataIndex: "orgCode",
key: "esutdOrganizationCode"
key: "esutdOrganizationCode",
},
{
title: "Метод",
......@@ -60,7 +63,10 @@ export const columns: TableProps<DataType>['columns'] = [
{
title: "Сообщение об ошибке",
dataIndex: "errorMessage",
key: "errorMessage"
key: "errorMessage",
render: (_, record) => (
<Button type='link' onClick={() => openXMLInNewPage(record.xml)} style={{padding: 0}}>Открыть сообщение</Button>
)
},
{
title: "Дата переотправки",
......@@ -77,13 +83,23 @@ export const columns: TableProps<DataType>['columns'] = [
width: 60,
render: (_, record) => {
return (
<ActionColumn data={record} />
<ResendColumn data={record} />
)
}
}
]
export const ActionColumn: React.FC<{ data: DataType }> = () => {
const openXMLInNewPage = (xmlContent: string) => {
const blob = new Blob([xmlContent], { type: 'application/xml' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.target = '_blank';
a.click();
URL.revokeObjectURL(url);
}
export const ResendColumn: React.FC<{ data: DataType }> = () => {
const [open, setOpen] = useState<boolean>(false);
const showResendModal = () => {
......@@ -110,7 +126,6 @@ export const ActionColumn: React.FC<{ data: DataType }> = () => {
<Modal
open={open}
title={`Вы уверены, что хотите переотправить?`}
// onOk={handleDeleteModalOk}
onCancel={handleResendModalCancel}
onOk={handleResendModalOk}
>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment