Commit c1474dd5 authored by Merekeyev Dias's avatar Merekeyev Dias

fixed endpoints conflict

parent 69429c0e
......@@ -32,58 +32,6 @@ export const apiSlice = createApi({
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"],
}),
}),
tagTypes: ["organizations", "requests"],
endpoints: () => ({}),
});
\ No newline at end of file
export const {
useGetOrganizationsQuery,
useGetOrganizationQuery,
useAddNewOrganizationMutation,
useEditOrganizationMutation,
useDeleteOrganizationMutation,
} = apiSlice;
......@@ -16,15 +16,15 @@ interface Organization {
export const organizationApiSlice = apiSlice.injectEndpoints({
endpoints: (builder) => ({
getOrganizations: builder.query<Organization[], void>({
query: () => 'organizations/list',
query: () => '/list',
providesTags: ["organizations"],
}),
getOrganization: builder.query<Organization, string>({
query: (orgId) => `organizations/info?id=${orgId}`,
query: (orgId) => `/info?id=${orgId}`,
}),
addNewOrganization: builder.mutation<Organization, Partial<Organization>>({
query: (initialOrg) => ({
url: 'organizations/save',
url: '/save',
method: 'POST',
body: initialOrg,
}),
......@@ -32,15 +32,28 @@ export const organizationApiSlice = apiSlice.injectEndpoints({
}),
editOrganization: builder.mutation<Organization, Partial<Organization>>({
query: ({ id, ...rest }) => ({
url: `organizations/edit?id=${id}`,
method: 'PUT',
url: `/save?id=${id}`,
method: 'POST',
body: rest,
}),
async onQueryStarted(_arg, { dispatch, queryFulfilled }) {
try {
const { data } = await queryFulfilled;
dispatch(organizationApiSlice.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: `organizations/delete?id=${orgId}`,
url: `/delete?id=${orgId}`,
method: 'DELETE',
}),
invalidatesTags: ["organizations"],
......
import React, { useState } from 'react';
import { Button, Space, Tag, Modal, message } from 'antd';
import type { TableProps } from 'antd';
import { getStatusText, getStatusColor } from './utils';
import { getStatusText, getStatusColor, openXMLInNewPage } from './utils';
import dayjs from 'dayjs';
export interface DataType {
......@@ -89,16 +89,6 @@ export const columns: TableProps<DataType>['columns'] = [
}
]
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);
......
......@@ -17,3 +17,13 @@ export const getStatusColor = (status: number) => {
default: return 'grey';
}
}
export 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);
}
\ No newline at end of file
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