Add roles endpoint

This commit is contained in:
rijkvanzanten
2020-06-18 15:48:50 -04:00
parent d27880f5d7
commit e89dff9bc2
3 changed files with 77 additions and 0 deletions

View File

@@ -11,6 +11,7 @@ import filesRouter from './routes/files';
import foldersRouter from './routes/folders';
import relationsRouter from './routes/relations';
import revisionsRouter from './routes/revisions';
import rolesRouter from './routes/roles';
import notFoundHandler from './routes/not-found';
const app = express()
@@ -23,6 +24,7 @@ const app = express()
.use('/folders', foldersRouter)
.use('/relations', relationsRouter)
.use('/revisions', revisionsRouter)
.use('/roles', rolesRouter)
.use(notFoundHandler)
.use(errorHandler);

53
src/routes/roles.ts Normal file
View 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 RolesService from '../services/roles';
const router = express.Router();
router.post(
'/',
asyncHandler(async (req, res) => {
const records = await RolesService.createRole(req.body, res.locals.query);
return res.json({ data: records });
})
);
router.get(
'/',
sanitizeQuery,
validateQuery,
asyncHandler(async (req, res) => {
const records = await RolesService.readRoles(res.locals.query);
return res.json({ data: records });
})
);
router.get(
'/:pk',
sanitizeQuery,
validateQuery,
asyncHandler(async (req, res) => {
const record = await RolesService.readRole(req.params.pk, res.locals.query);
return res.json({ data: record });
})
);
router.patch(
'/:pk',
asyncHandler(async (req, res) => {
const records = await RolesService.updateRole(req.params.pk, req.body, res.locals.query);
return res.json({ data: records });
})
);
router.delete(
'/:pk',
asyncHandler(async (req, res) => {
await RolesService.deleteRole(req.params.pk);
return res.status(200).end();
})
);
export default router;

22
src/services/roles.ts Normal file
View File

@@ -0,0 +1,22 @@
import { Query } from '../types/query';
import * as ItemsService from './items';
export const createRole = async (data: Record<string, any>, query: Query) => {
return await ItemsService.createItem('directus_roles', data, query);
};
export const readRoles = async (query: Query) => {
return await ItemsService.readItems('directus_roles', query);
};
export const readRole = async (pk: string | number, query: Query) => {
return await ItemsService.readItem('directus_roles', pk, query);
};
export const updateRole = async (pk: string | number, data: Record<string, any>, query: Query) => {
return await ItemsService.updateItem('directus_roles', pk, data, query);
};
export const deleteRole = async (pk: string | number) => {
await ItemsService.deleteItem('directus_roles', pk);
};