Add folders

This commit is contained in:
rijkvanzanten
2020-06-18 15:23:52 -04:00
parent 40f572ebd2
commit a7de497a0a
3 changed files with 85 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ import itemsRouter from './routes/items';
import activityRouter from './routes/activity';
import collectionPresetsRouter from './routes/collection-presets';
import filesRouter from './routes/files';
import foldersRouter from './routes/folders';
import notFoundHandler from './routes/not-found';
const app = express()
@@ -17,6 +18,7 @@ const app = express()
.use('/files', filesRouter)
.use('/activity', activityRouter)
.use('/collection_presets', collectionPresetsRouter)
.use('/folders', foldersRouter)
.use(notFoundHandler)
.use(errorHandler);

57
src/routes/folders.ts Normal file
View File

@@ -0,0 +1,57 @@
import express from 'express';
import asyncHandler from 'express-async-handler';
import sanitizeQuery from '../middleware/sanitize-query';
import validateQuery from '../middleware/validate-query';
import * as FoldersService from '../services/folders';
const router = express.Router();
router.post(
'/',
asyncHandler(async (req, res) => {
const records = await FoldersService.createFolder(req.body, res.locals.query);
return res.json({ data: records });
})
);
router.get(
'/',
sanitizeQuery,
validateQuery,
asyncHandler(async (req, res) => {
const records = await FoldersService.readFolders(res.locals.query);
return res.json({ data: records });
})
);
router.get(
'/:pk',
sanitizeQuery,
validateQuery,
asyncHandler(async (req, res) => {
const record = await FoldersService.readFolder(req.params.pk, res.locals.query);
return res.json({ data: record });
})
);
router.patch(
'/:pk',
asyncHandler(async (req, res) => {
const records = await FoldersService.updateFolder(
req.params.pk,
req.body,
res.locals.query
);
return res.json({ data: records });
})
);
router.delete(
'/:pk',
asyncHandler(async (req, res) => {
await FoldersService.deleteFolder(req.params.pk);
return res.status(200).end();
})
);
export default router;

26
src/services/folders.ts Normal file
View File

@@ -0,0 +1,26 @@
import { Query } from '../types/query';
import * as ItemsService from './items';
export const createFolder = async (data: Record<string, any>, query: Query) => {
return await ItemsService.createItem('directus_folders', data, query);
};
export const readFolders = async (query: Query) => {
return await ItemsService.readItems('directus_folders', query);
};
export const readFolder = async (pk: string | number, query: Query) => {
return await ItemsService.readItem('directus_folders', pk, query);
};
export const updateFolder = async (
pk: string | number,
data: Record<string, any>,
query: Query
) => {
return await ItemsService.updateItem('directus_folders', pk, data, query);
};
export const deleteFolder = async (pk: string | number) => {
await ItemsService.deleteItem('directus_folders', pk);
};