From 99a23889bcf30e52af9a43631d32166cd0062584 Mon Sep 17 00:00:00 2001 From: elforjani13 <39470382+elforjani13@users.noreply.github.com> Date: Thu, 24 Mar 2022 12:19:46 +0200 Subject: [PATCH] feat: add warehouses transfers query. --- src/hooks/query/warehouses.js | 158 ----------------------- src/hooks/query/warehousesTransfers.js | 172 +++++++++++++++++++++++++ 2 files changed, 172 insertions(+), 158 deletions(-) create mode 100644 src/hooks/query/warehousesTransfers.js diff --git a/src/hooks/query/warehouses.js b/src/hooks/query/warehouses.js index 703a66687..b2cd0eaea 100644 --- a/src/hooks/query/warehouses.js +++ b/src/hooks/query/warehouses.js @@ -104,164 +104,6 @@ export function useWarehouse(id, props, requestProps) { ); } -/** - * Create a new warehouse transfer. - */ -export function useCreateWarehouseTransfer(props) { - const queryClient = useQueryClient(); - const apiRequest = useApiRequest(); - - return useMutation( - (values) => apiRequest.post('warehouses/transfers', values), - { - onSuccess: (res, values) => { - // Common invalidate queries. - commonInvalidateQueries(queryClient); - }, - ...props, - }, - ); -} - -/** - * Edits the given warehouse transfer. - */ -export function useEditWarehouseTransfer(props) { - const queryClient = useQueryClient(); - const apiRequest = useApiRequest(); - - return useMutation( - ([id, values]) => apiRequest.post(`warehouses/transfers/${id}`, values), - { - onSuccess: (res, [id, values]) => { - // Invalidate specific sale invoice. - queryClient.invalidateQueries([t.WAREHOUSE_TRANSFER, id]); - - // Common invalidate queries. - commonInvalidateQueries(queryClient); - }, - ...props, - }, - ); -} - -/** - * Deletes the given warehouse Transfer. - */ -export function useDeleteWarehouseTransfer(props) { - const queryClient = useQueryClient(); - const apiRequest = useApiRequest(); - - return useMutation((id) => apiRequest.delete(`warehouses/transfers/${id}`), { - onSuccess: (res, id) => { - // Common invalidate queries. - commonInvalidateQueries(queryClient); - }, - ...props, - }); -} - -const transformWarehousesTransfer = (res) => ({ - warehousesTransfers: res.data.data, - pagination: transformPagination(res.data.pagination), - filterMeta: res.data.filter, -}); - -/** - * Retrieve Warehoues list. - */ -export function useWarehousesTransfers(query, props) { - return useRequestQuery( - [t.WAREHOUSE_TRANSFERS, query], - { method: 'get', url: 'warehouses/transfers', params: query }, - { - select: transformWarehousesTransfer, - defaultData: { - warehousesTransfers: [], - pagination: { - page: 1, - pageSize: 20, - total: 0, - }, - filterMeta: {}, - }, - ...props, - }, - ); -} - -/** - * Retrieve the warehouse transfer details. - * @param {number} - */ -export function useWarehouseTransfer(id, props, requestProps) { - return useRequestQuery( - [t.WAREHOUSE_TRANSFER, id], - { method: 'get', url: `warehouses/transfers/${id}`, ...requestProps }, - { - select: (res) => res.data.data, - defaultData: {}, - ...props, - }, - ); -} - -/** - * - * @param {*} props - * @returns - */ -export function useInitiateWarehouseTransfer(props) { - const queryClient = useQueryClient(); - const apiRequest = useApiRequest(); - - return useMutation( - (id) => apiRequest.put(`warehouses/transfers/${id}/initiate`), - { - onSuccess: (res, id) => { - queryClient.invalidateQueries([t.WAREHOUSE_TRANSFER, id]); - - // Common invalidate queries. - commonInvalidateQueries(queryClient); - }, - ...props, - }, - ); -} - -/** - * - * @param {*} props - * @returns - */ -export function useTransferredWarehouseTransfer(props) { - const queryClient = useQueryClient(); - const apiRequest = useApiRequest(); - - return useMutation( - (id) => apiRequest.put(`warehouses/transfers/${id}/transferred`), - { - onSuccess: (res, id) => { - queryClient.invalidateQueries([t.WAREHOUSE_TRANSFER, id]); - - // Common invalidate queries. - commonInvalidateQueries(queryClient); - }, - ...props, - }, - ); -} - -export function useRefreshWarehouseTransfers() { - const queryClient = useQueryClient(); - - return { - refresh: () => { - queryClient.invalidateQueries(t.WAREHOUSE_TRANSFERS); - }, - }; -} - /** * Activate the given warehouse. */ diff --git a/src/hooks/query/warehousesTransfers.js b/src/hooks/query/warehousesTransfers.js new file mode 100644 index 000000000..414201183 --- /dev/null +++ b/src/hooks/query/warehousesTransfers.js @@ -0,0 +1,172 @@ +import { useQueryClient, useMutation } from 'react-query'; +import { transformPagination } from 'utils'; +import { useRequestQuery } from '../useQueryRequest'; +import useApiRequest from '../useRequest'; +import t from './types'; + +// Common invalidate queries. +const commonInvalidateQueries = (queryClient) => { + // Invalidate warehouses transfers. + queryClient.invalidateQueries(t.WAREHOUSE_TRANSFERS); + + // Invalidate item warehouses. + queryClient.invalidateQueries(t.ITEM_WAREHOUSES_LOCATION); +}; + +/** + * Create a new warehouse transfer. + */ +export function useCreateWarehouseTransfer(props) { + const queryClient = useQueryClient(); + const apiRequest = useApiRequest(); + + return useMutation( + (values) => apiRequest.post('warehouses/transfers', values), + { + onSuccess: (res, values) => { + // Common invalidate queries. + commonInvalidateQueries(queryClient); + }, + ...props, + }, + ); +} + +/** + * Edits the given warehouse transfer. + */ +export function useEditWarehouseTransfer(props) { + const queryClient = useQueryClient(); + const apiRequest = useApiRequest(); + + return useMutation( + ([id, values]) => apiRequest.post(`warehouses/transfers/${id}`, values), + { + onSuccess: (res, [id, values]) => { + // Invalidate specific sale invoice. + queryClient.invalidateQueries([t.WAREHOUSE_TRANSFER, id]); + + // Common invalidate queries. + commonInvalidateQueries(queryClient); + }, + ...props, + }, + ); +} + +/** + * Deletes the given warehouse Transfer. + */ +export function useDeleteWarehouseTransfer(props) { + const queryClient = useQueryClient(); + const apiRequest = useApiRequest(); + + return useMutation((id) => apiRequest.delete(`warehouses/transfers/${id}`), { + onSuccess: (res, id) => { + // Common invalidate queries. + commonInvalidateQueries(queryClient); + }, + ...props, + }); +} + +const transformWarehousesTransfer = (res) => ({ + warehousesTransfers: res.data.data, + pagination: transformPagination(res.data.pagination), + filterMeta: res.data.filter, +}); + +/** + * Retrieve Warehoues list. + */ +export function useWarehousesTransfers(query, props) { + return useRequestQuery( + [t.WAREHOUSE_TRANSFERS, query], + { method: 'get', url: 'warehouses/transfers', params: query }, + { + select: transformWarehousesTransfer, + defaultData: { + warehousesTransfers: [], + pagination: { + page: 1, + pageSize: 20, + total: 0, + }, + filterMeta: {}, + }, + ...props, + }, + ); +} + +/** + * Retrieve the warehouse transfer details. + * @param {number} + */ +export function useWarehouseTransfer(id, props, requestProps) { + return useRequestQuery( + [t.WAREHOUSE_TRANSFER, id], + { method: 'get', url: `warehouses/transfers/${id}`, ...requestProps }, + { + select: (res) => res.data.data, + defaultData: {}, + ...props, + }, + ); +} + +/** + * + * @param {*} props + * @returns + */ +export function useInitiateWarehouseTransfer(props) { + const queryClient = useQueryClient(); + const apiRequest = useApiRequest(); + + return useMutation( + (id) => apiRequest.put(`warehouses/transfers/${id}/initiate`), + { + onSuccess: (res, id) => { + queryClient.invalidateQueries([t.WAREHOUSE_TRANSFER, id]); + + // Common invalidate queries. + commonInvalidateQueries(queryClient); + }, + ...props, + }, + ); +} + +/** + * + * @param {*} props + * @returns + */ +export function useTransferredWarehouseTransfer(props) { + const queryClient = useQueryClient(); + const apiRequest = useApiRequest(); + + return useMutation( + (id) => apiRequest.put(`warehouses/transfers/${id}/transferred`), + { + onSuccess: (res, id) => { + queryClient.invalidateQueries([t.WAREHOUSE_TRANSFER, id]); + + // Common invalidate queries. + commonInvalidateQueries(queryClient); + }, + ...props, + }, + ); +} + +export function useRefreshWarehouseTransfers() { + const queryClient = useQueryClient(); + + return { + refresh: () => { + queryClient.invalidateQueries(t.WAREHOUSE_TRANSFERS); + }, + }; +}