Add revisions to relations

This commit is contained in:
rijkvanzanten
2020-07-09 13:01:45 -04:00
parent ea7647355e
commit 9f2d1316f2
3 changed files with 23 additions and 40 deletions

View File

@@ -11,18 +11,15 @@ const router = express.Router();
router.post(
'/',
useCollection('directus_relations'),
sanitizeQuery,
validateQuery,
asyncHandler(async (req, res) => {
const item = await RelationsService.createRelation(req.body, req.sanitizedQuery);
ActivityService.createActivity({
action: ActivityService.Action.CREATE,
collection: req.collection,
item: item.id,
const primaryKey = await RelationsService.createRelation(req.body, {
ip: req.ip,
user_agent: req.get('user-agent'),
action_by: req.user,
userAgent: req.get('user-agent'),
user: req.user,
});
const item = await RelationsService.readRelation(primaryKey, req.sanitizedQuery);
return res.json({ data: item });
})
);
@@ -52,22 +49,15 @@ router.get(
router.patch(
'/:pk',
useCollection('directus_relations'),
sanitizeQuery,
validateQuery,
asyncHandler(async (req, res) => {
const item = await RelationsService.updateRelation(
req.params.pk,
req.body,
req.sanitizedQuery
);
ActivityService.createActivity({
action: ActivityService.Action.UPDATE,
collection: req.collection,
item: item.id,
const primaryKey = await RelationsService.updateRelation(req.params.pk, req.body, {
ip: req.ip,
user_agent: req.get('user-agent'),
action_by: req.user,
userAgent: req.get('user-agent'),
user: req.user,
});
const item = await RelationsService.readRelation(primaryKey, req.sanitizedQuery);
return res.json({ data: item });
})
);
@@ -76,15 +66,10 @@ router.delete(
'/:pk',
useCollection('directus_relations'),
asyncHandler(async (req, res) => {
await RelationsService.deleteRelation(req.params.pk);
ActivityService.createActivity({
action: ActivityService.Action.DELETE,
collection: req.collection,
item: req.params.pk,
await RelationsService.deleteRelation(Number(req.params.pk), {
ip: req.ip,
user_agent: req.get('user-agent'),
action_by: req.user,
userAgent: req.get('user-agent'),
user: req.user,
});
return res.status(200).end();

View File

@@ -11,7 +11,7 @@ export enum Action {
AUTHENTICATE = 'authenticate',
}
export const createActivity = async (data: Record<string, any>, query?: Query) => {
export const createActivity = async (data: Record<string, any>) => {
return await ItemsService.createItem('directus_activity', data);
};

View File

@@ -1,9 +1,8 @@
import { Query } from '../types/query';
import { Accountability, Query } from '../types';
import * as ItemsService from './items';
export const createRelation = async (data: Record<string, any>, query: Query) => {
const primaryKey = await ItemsService.createItem('directus_relations', data);
return ItemsService.readItem('directus_relations', primaryKey, query);
export const createRelation = async (data: Record<string, any>, accountability: Accountability) => {
return await ItemsService.createItem('directus_relations', data, accountability);
};
export const readRelations = async (query: Query) => {
@@ -17,12 +16,11 @@ export const readRelation = async (pk: string | number, query: Query) => {
export const updateRelation = async (
pk: string | number,
data: Record<string, any>,
query: Query
accountability: Accountability
) => {
const primaryKey = await ItemsService.updateItem('directus_relations', pk, data);
return ItemsService.readItem('directus_relations', primaryKey, query);
return await ItemsService.updateItem('directus_relations', pk, data, accountability);
};
export const deleteRelation = async (pk: string | number) => {
await ItemsService.deleteItem('directus_relations', pk);
export const deleteRelation = async (pk: number, accountability: Accountability) => {
await ItemsService.deleteItem('directus_relations', pk, accountability);
};