ui(admin): add user create and user update
This commit is contained in:
parent
1d290919b7
commit
27c93365e9
6 changed files with 299 additions and 7 deletions
|
@ -1,11 +1,17 @@
|
|||
import http from '@/api/http';
|
||||
import { User, rawDataToUser } from '@/api/admin/users/getUsers';
|
||||
import { Values } from '@/api/admin/users/updateUser';
|
||||
|
||||
export default (name: string, include: string[] = []): Promise<User> => {
|
||||
export type { Values };
|
||||
|
||||
export default (values: Values, include: string[] = []): Promise<User> => {
|
||||
const data = {};
|
||||
Object.keys(values).forEach(k => {
|
||||
// @ts-ignore
|
||||
data[k.replace(/[A-Z]/g, l => `_${l.toLowerCase()}`)] = values[k];
|
||||
});
|
||||
return new Promise((resolve, reject) => {
|
||||
http.post('/api/application/users', {
|
||||
name,
|
||||
}, { params: { include: include.join(',') } })
|
||||
http.post('/api/application/users', data, { params: { include: include.join(',') } })
|
||||
.then(({ data }) => resolve(rawDataToUser(data)))
|
||||
.catch(reject);
|
||||
});
|
||||
|
|
|
@ -15,6 +15,7 @@ export interface User {
|
|||
rootAdmin: boolean;
|
||||
tfa: boolean;
|
||||
avatarURL: string;
|
||||
roleId: number | null;
|
||||
roleName: string | null;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
|
@ -32,6 +33,7 @@ export const rawDataToUser = ({ attributes }: FractalResponseData): User => ({
|
|||
rootAdmin: attributes.root_admin,
|
||||
tfa: attributes['2fa'],
|
||||
avatarURL: attributes.avatar_url,
|
||||
roleId: attributes.role_id,
|
||||
roleName: attributes.role_name,
|
||||
createdAt: new Date(attributes.created_at),
|
||||
updatedAt: new Date(attributes.updated_at),
|
||||
|
|
24
resources/scripts/api/admin/users/updateUser.ts
Normal file
24
resources/scripts/api/admin/users/updateUser.ts
Normal file
|
@ -0,0 +1,24 @@
|
|||
import http from '@/api/http';
|
||||
import { User, rawDataToUser } from '@/api/admin/users/getUsers';
|
||||
|
||||
export interface Values {
|
||||
username: string;
|
||||
email: string;
|
||||
firstName: string;
|
||||
lastName: string;
|
||||
password: string;
|
||||
roleId: number | null;
|
||||
}
|
||||
|
||||
export default (id: number, values: Partial<Values>, include: string[] = []): Promise<User> => {
|
||||
const data = {};
|
||||
Object.keys(values).forEach(k => {
|
||||
// @ts-ignore
|
||||
data[k.replace(/[A-Z]/g, l => `_${l.toLowerCase()}`)] = values[k];
|
||||
});
|
||||
return new Promise((resolve, reject) => {
|
||||
http.patch(`/api/application/users/${id}`, data, { params: { include: include.join(',') } })
|
||||
.then(({ data }) => resolve(rawDataToUser(data)))
|
||||
.catch(reject);
|
||||
});
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue