mirror of
https://github.com/directus/directus.git
synced 2026-01-26 04:48:30 -05:00
Add users endpoint
This commit is contained in:
@@ -12,6 +12,7 @@ import foldersRouter from './routes/folders';
|
||||
import relationsRouter from './routes/relations';
|
||||
import revisionsRouter from './routes/revisions';
|
||||
import rolesRouter from './routes/roles';
|
||||
import usersRouter from './routes/users';
|
||||
import notFoundHandler from './routes/not-found';
|
||||
|
||||
const app = express()
|
||||
@@ -25,6 +26,7 @@ const app = express()
|
||||
.use('/relations', relationsRouter)
|
||||
.use('/revisions', revisionsRouter)
|
||||
.use('/roles', rolesRouter)
|
||||
.use('/users', usersRouter)
|
||||
.use(notFoundHandler)
|
||||
.use(errorHandler);
|
||||
|
||||
|
||||
53
src/routes/users.ts
Normal file
53
src/routes/users.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import express from 'express';
|
||||
import asyncHandler from 'express-async-handler';
|
||||
import sanitizeQuery from '../middleware/sanitize-query';
|
||||
import validateQuery from '../middleware/validate-query';
|
||||
import * as UsersService from '../services/users';
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.post(
|
||||
'/',
|
||||
asyncHandler(async (req, res) => {
|
||||
const records = await UsersService.createUser(req.body, res.locals.query);
|
||||
return res.json({ data: records });
|
||||
})
|
||||
);
|
||||
|
||||
router.get(
|
||||
'/',
|
||||
sanitizeQuery,
|
||||
validateQuery,
|
||||
asyncHandler(async (req, res) => {
|
||||
const records = await UsersService.readUsers(res.locals.query);
|
||||
return res.json({ data: records });
|
||||
})
|
||||
);
|
||||
|
||||
router.get(
|
||||
'/:pk',
|
||||
sanitizeQuery,
|
||||
validateQuery,
|
||||
asyncHandler(async (req, res) => {
|
||||
const record = await UsersService.readUser(req.params.pk, res.locals.query);
|
||||
return res.json({ data: record });
|
||||
})
|
||||
);
|
||||
|
||||
router.patch(
|
||||
'/:pk',
|
||||
asyncHandler(async (req, res) => {
|
||||
const records = await UsersService.updateUser(req.params.pk, req.body, res.locals.query);
|
||||
return res.json({ data: records });
|
||||
})
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/:pk',
|
||||
asyncHandler(async (req, res) => {
|
||||
await UsersService.deleteUser(req.params.pk);
|
||||
return res.status(200).end();
|
||||
})
|
||||
);
|
||||
|
||||
export default router;
|
||||
22
src/services/users.ts
Normal file
22
src/services/users.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { Query } from '../types/query';
|
||||
import * as ItemsService from './items';
|
||||
|
||||
export const createUser = async (data: Record<string, any>, query: Query) => {
|
||||
return await ItemsService.createItem('directus_users', data, query);
|
||||
};
|
||||
|
||||
export const readUsers = async (query: Query) => {
|
||||
return await ItemsService.readItems('directus_users', query);
|
||||
};
|
||||
|
||||
export const readUser = async (pk: string | number, query: Query) => {
|
||||
return await ItemsService.readItem('directus_users', pk, query);
|
||||
};
|
||||
|
||||
export const updateUser = async (pk: string | number, data: Record<string, any>, query: Query) => {
|
||||
return await ItemsService.updateItem('directus_users', pk, data, query);
|
||||
};
|
||||
|
||||
export const deleteUser = async (pk: string | number) => {
|
||||
await ItemsService.deleteItem('directus_users', pk);
|
||||
};
|
||||
Reference in New Issue
Block a user