update build admin
This commit is contained in:
parent
d819ea9850
commit
6cf2cd4de4
|
|
@ -0,0 +1,109 @@
|
|||
import { generateNestParams, handleError, handleSuccess } from '.';
|
||||
import axios from '../lib/axios';
|
||||
import { IAdmin } from '../system/type';
|
||||
import { removeFalsyValues } from '../utils';
|
||||
|
||||
export const getAdmins = async (params: Record<string, string | number>) => {
|
||||
return await axios({
|
||||
url: 'admins',
|
||||
params: generateNestParams(params),
|
||||
withCredentials: true,
|
||||
method: 'GET',
|
||||
});
|
||||
};
|
||||
|
||||
export const updateAdmin = async (admin: Partial<IAdmin>) => {
|
||||
const { email, fullname, permissions } = removeFalsyValues(admin);
|
||||
|
||||
try {
|
||||
const { data } = await axios({
|
||||
url: 'admins/' + admin.id,
|
||||
withCredentials: true,
|
||||
method: 'PUT',
|
||||
data: { email, fullname, permissions },
|
||||
});
|
||||
|
||||
handleSuccess(data);
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
handleError(error);
|
||||
}
|
||||
};
|
||||
|
||||
export const grantNewPasswordAdmin = async (admin: Partial<IAdmin>) => {
|
||||
const { password } = removeFalsyValues(admin);
|
||||
|
||||
try {
|
||||
const { data } = await axios({
|
||||
url: 'admins/grant-new-password/' + admin.id,
|
||||
withCredentials: true,
|
||||
method: 'POST',
|
||||
data: { password },
|
||||
});
|
||||
|
||||
handleSuccess(data);
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
handleError(error);
|
||||
}
|
||||
};
|
||||
|
||||
export const createAdmin = async (admin: Omit<IAdmin, 'id' | 'created_at' | 'updated_at' | 'is_system_account'>) => {
|
||||
const newData = removeFalsyValues(admin);
|
||||
|
||||
try {
|
||||
const { data } = await axios({
|
||||
url: 'admins',
|
||||
withCredentials: true,
|
||||
method: 'POST',
|
||||
data: newData,
|
||||
});
|
||||
|
||||
handleSuccess(data);
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
handleError(error);
|
||||
}
|
||||
};
|
||||
|
||||
export const deleteAdmin = async (admin: IAdmin) => {
|
||||
try {
|
||||
const { data } = await axios({
|
||||
url: 'admins/' + admin.id,
|
||||
withCredentials: true,
|
||||
method: 'DELETE',
|
||||
});
|
||||
|
||||
handleSuccess(data);
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
handleError(error);
|
||||
}
|
||||
};
|
||||
|
||||
export const deletesAdmin = async (admins: IAdmin[]) => {
|
||||
const ids = admins.reduce((prev, cur) => {
|
||||
prev.push(cur.id);
|
||||
return prev;
|
||||
}, [] as number[]);
|
||||
try {
|
||||
const { data } = await axios({
|
||||
url: 'admins/deletes',
|
||||
withCredentials: true,
|
||||
method: 'POST',
|
||||
data: {
|
||||
ids,
|
||||
},
|
||||
});
|
||||
|
||||
handleSuccess(data);
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
handleError(error);
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import { generateNestParams } from '.';
|
||||
import axios from '../lib/axios';
|
||||
|
||||
export const getPermissions = async (params: Record<string, string | number>) => {
|
||||
return await axios({
|
||||
url: 'permissions',
|
||||
params: generateNestParams(params),
|
||||
withCredentials: true,
|
||||
method: 'GET',
|
||||
});
|
||||
};
|
||||
|
|
@ -4,11 +4,9 @@ import { useForm, zodResolver } from '@mantine/form';
|
|||
import _ from 'lodash';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { z } from 'zod';
|
||||
import { updateBid } from '../../apis/bid';
|
||||
import { createWebBid, updateWebBid } from '../../apis/web-bid';
|
||||
import { updateWebBid } from '../../apis/web-bid';
|
||||
import { useConfirmStore } from '../../lib/zustand/use-confirm';
|
||||
import { IWebBid } from '../../system/type';
|
||||
import { extractDomain } from '../../utils';
|
||||
export interface IWebBidModelProps extends ModalProps {
|
||||
data: IWebBid | null;
|
||||
onUpdated?: () => void;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import { useForm, zodResolver } from '@mantine/form';
|
|||
import _ from 'lodash';
|
||||
import { useEffect, useRef } from 'react';
|
||||
import { z } from 'zod';
|
||||
import { updateBid } from '../../apis/bid';
|
||||
import { createWebBid, updateWebBid } from '../../apis/web-bid';
|
||||
import { useConfirmStore } from '../../lib/zustand/use-confirm';
|
||||
import { IWebBid } from '../../system/type';
|
||||
|
|
|
|||
|
|
@ -1,3 +1 @@
|
|||
export { default as usePermissions } from './use-permissions';
|
||||
export { default as useCategories } from './use-categories';
|
||||
export { default as useTags } from './use-tags';
|
||||
|
|
|
|||
|
|
@ -1,28 +0,0 @@
|
|||
import { useEffect, useState } from 'react';
|
||||
import { getCategories } from '../apis/category';
|
||||
import { ICategory } from '../system/type';
|
||||
import { ComboboxData } from '@mantine/core';
|
||||
|
||||
export default function usePermissions() {
|
||||
const [data, setData] = useState<ICategory[]>([]);
|
||||
|
||||
const handleGetData = async () => {
|
||||
const result = await getCategories({ per_page: 100 });
|
||||
|
||||
if (!result || !result.data?.data) return;
|
||||
|
||||
setData(result.data.data);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
handleGetData();
|
||||
}, []);
|
||||
|
||||
return {
|
||||
data,
|
||||
select: data.map((item) => {
|
||||
return { label: item.name, value: String(item.id) };
|
||||
}) as ComboboxData,
|
||||
refresh: handleGetData,
|
||||
};
|
||||
}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
import { ComboboxData } from '@mantine/core';
|
||||
import { useEffect, useState } from 'react';
|
||||
import { getTags } from '../apis/tag';
|
||||
import { ITag } from '../system/type';
|
||||
|
||||
export default function useTags() {
|
||||
const [data, setData] = useState<ITag[]>([]);
|
||||
|
||||
const handleGetData = async () => {
|
||||
const result = await getTags({ per_page: 100 });
|
||||
|
||||
if (!result || !result.data?.data) return;
|
||||
|
||||
setData(result.data.data);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
handleGetData();
|
||||
}, []);
|
||||
|
||||
return {
|
||||
data,
|
||||
select: data.map((item) => {
|
||||
return { label: item.name, value: String(item.id) };
|
||||
}) as ComboboxData,
|
||||
refresh: handleGetData,
|
||||
};
|
||||
}
|
||||
|
|
@ -3,3 +3,10 @@ export const mappingStatusColors = {
|
|||
'out-bid': 'red',
|
||||
'win-bid': 'green',
|
||||
};
|
||||
|
||||
export const mappingPermissionsColors = {
|
||||
POST: 'blue',
|
||||
DELETE: 'red',
|
||||
GET: 'green',
|
||||
PUT: 'yellow',
|
||||
};
|
||||
|
|
|
|||
|
|
@ -54,3 +54,9 @@ export interface IWebBid extends ITimestamp {
|
|||
active: boolean;
|
||||
children: IBid[];
|
||||
}
|
||||
|
||||
export interface IPermission extends ITimestamp {
|
||||
id: number;
|
||||
name: string;
|
||||
description: string;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue