add users and fix modal
This commit is contained in:
@@ -3,19 +3,9 @@ import { Config } from "@/config/config";
|
||||
import type { Form, FormCreate, FormEditPayload } from "@/services/resources/forms";
|
||||
import type { Shipment, ShipmentCreate, ShipmentEditPayload } from "@/services/resources/shipments";
|
||||
import type { Productor, ProductorCreate, ProductorEditPayload } from "@/services/resources/productors";
|
||||
import type { User } from "@/services/resources/users";
|
||||
import type { User, UserCreate, UserEditPayload } from "@/services/resources/users";
|
||||
import type { Product, ProductCreate, ProductEditPayload } from "./resources/products";
|
||||
|
||||
export function getUsers() {
|
||||
return useQuery<User[]>({
|
||||
queryKey: ['users'],
|
||||
queryFn: () => (
|
||||
fetch(`${Config.backend_uri}/users`)
|
||||
.then((res) => res.json())
|
||||
),
|
||||
});
|
||||
}
|
||||
|
||||
export function getShipments() {
|
||||
return useQuery<Shipment[]>({
|
||||
queryKey: ['shipments'],
|
||||
@@ -65,10 +55,10 @@ export function editShipment() {
|
||||
})
|
||||
}
|
||||
|
||||
export function getProductors(filters?: URLSearchParams) {
|
||||
export function getProductors(filters?: URLSearchParams): UseQueryResult<Productor[], Error> {
|
||||
const queryString = filters?.toString()
|
||||
return useQuery<Productor[]>({
|
||||
queryKey: ['productors', filters],
|
||||
queryKey: ['productors', queryString],
|
||||
queryFn: () => (
|
||||
fetch(`${Config.backend_uri}/productors${filters ? `?${queryString}` : ""}`)
|
||||
.then((res) => res.json())
|
||||
@@ -76,13 +66,15 @@ export function getProductors(filters?: URLSearchParams) {
|
||||
});
|
||||
}
|
||||
|
||||
export function getProductor(id: number) {
|
||||
export function getProductor(id?: number, options?: any) {
|
||||
return useQuery<Productor>({
|
||||
queryKey: ['productor'],
|
||||
queryFn: () => (
|
||||
fetch(`${Config.backend_uri}/productors/${id}`)
|
||||
.then((res) => res.json())
|
||||
),
|
||||
enabled: !!id,
|
||||
...options,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -141,13 +133,15 @@ export function deleteProductor() {
|
||||
});
|
||||
}
|
||||
|
||||
export function getForm(id: number): UseQueryResult<Form, Error> {
|
||||
export function getForm(id?: number, options?: any) {
|
||||
return useQuery<Form>({
|
||||
queryKey: ['form'],
|
||||
queryFn: () => (
|
||||
fetch(`${Config.backend_uri}/forms/${id}`)
|
||||
.then((res) => res.json())
|
||||
),
|
||||
enabled: !!id,
|
||||
...options,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -217,13 +211,15 @@ export function editForm() {
|
||||
});
|
||||
}
|
||||
|
||||
export function getProduct(id: number): UseQueryResult<Product, Error> {
|
||||
export function getProduct(id?: number, options?: any) {
|
||||
return useQuery<Product>({
|
||||
queryKey: ['product'],
|
||||
queryFn: () => (
|
||||
fetch(`${Config.backend_uri}/products/${id}`)
|
||||
.then((res) => res.json())
|
||||
),
|
||||
enabled: !!id,
|
||||
...options,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -292,3 +288,81 @@ export function editProduct() {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export function getUser(id?: number, options?: any) {
|
||||
return useQuery<User>({
|
||||
queryKey: ['user'],
|
||||
queryFn: () => (
|
||||
fetch(`${Config.backend_uri}/users/${id}`)
|
||||
.then((res) => res.json())
|
||||
),
|
||||
enabled: !!id,
|
||||
...options,
|
||||
});
|
||||
}
|
||||
|
||||
export function getUsers(filters?: URLSearchParams): UseQueryResult<User[], Error> {
|
||||
const queryString = filters?.toString()
|
||||
return useQuery<User[]>({
|
||||
queryKey: ['users', queryString],
|
||||
queryFn: () => (
|
||||
fetch(`${Config.backend_uri}/users${filters ? `?${queryString}` : ""}`)
|
||||
.then((res) => res.json())
|
||||
),
|
||||
});
|
||||
}
|
||||
|
||||
export function createUser() {
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
return useMutation({
|
||||
mutationFn: (newUser: UserCreate) => {
|
||||
return fetch(`${Config.backend_uri}/users`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
body: JSON.stringify(newUser),
|
||||
}).then((res) => res.json());
|
||||
},
|
||||
onSuccess: async () => {
|
||||
await queryClient.invalidateQueries({ queryKey: ['users'] })
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export function deleteUser() {
|
||||
const queryClient = useQueryClient()
|
||||
return useMutation({
|
||||
mutationFn: (id: number) => {
|
||||
return fetch(`${Config.backend_uri}/users/${id}`, {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
}).then((res) => res.json());
|
||||
},
|
||||
onSuccess: async () => {
|
||||
await queryClient.invalidateQueries({ queryKey: ['users'] })
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export function editUser() {
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
return useMutation({
|
||||
mutationFn: ({id, user}: UserEditPayload) => {
|
||||
return fetch(`${Config.backend_uri}/users/${id}`, {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
body: JSON.stringify(user),
|
||||
}).then((res) => res.json());
|
||||
},
|
||||
onSuccess: async () => {
|
||||
await queryClient.invalidateQueries({ queryKey: ['users'] })
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user