mirror of
https://github.com/directus/directus.git
synced 2026-01-29 18:48:04 -05:00
Add revisions to relations
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user