mirror of
https://github.com/directus/directus.git
synced 2026-01-29 19:08:06 -05:00
@@ -28,7 +28,10 @@ export default async function runAST(ast: AST, query = ast.query) {
|
||||
if (query.filter) {
|
||||
query.filter.forEach((filter) => {
|
||||
if (filter.operator === 'in') {
|
||||
dbQuery.whereIn(filter.column, filter.value as (string | number)[]);
|
||||
let value = filter.value;
|
||||
if (typeof value === 'string') value = value.split(',');
|
||||
|
||||
dbQuery.whereIn(filter.column, value as string[]);
|
||||
}
|
||||
|
||||
if (filter.operator === 'eq') {
|
||||
|
||||
@@ -34,4 +34,60 @@ router.get(
|
||||
})
|
||||
);
|
||||
|
||||
router.post(
|
||||
'/comment',
|
||||
useCollection('directus_activity'),
|
||||
sanitizeQuery,
|
||||
validateQuery,
|
||||
asyncHandler(async (req, res) => {
|
||||
const primaryKey = await ActivityService.createActivity({
|
||||
...req.body,
|
||||
action: ActivityService.Action.COMMENT,
|
||||
action_by: req.user,
|
||||
ip: req.ip,
|
||||
user_agent: req.get('user-agent'),
|
||||
});
|
||||
|
||||
const record = await ActivityService.readActivity(primaryKey, req.sanitizedQuery);
|
||||
|
||||
return res.json({
|
||||
data: record || null,
|
||||
});
|
||||
})
|
||||
);
|
||||
|
||||
router.patch(
|
||||
'/comment/:pk',
|
||||
useCollection('directus_activity'),
|
||||
sanitizeQuery,
|
||||
validateQuery,
|
||||
asyncHandler(async (req, res) => {
|
||||
const primaryKey = await ActivityService.updateActivity(req.params.pk, req.body, {
|
||||
user: req.user,
|
||||
ip: req.ip,
|
||||
userAgent: req.get('user-agent'),
|
||||
});
|
||||
|
||||
const record = await ActivityService.readActivity(primaryKey, req.sanitizedQuery);
|
||||
|
||||
return res.json({
|
||||
data: record || null,
|
||||
});
|
||||
})
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/comment/:pk',
|
||||
useCollection('directus_activity'),
|
||||
asyncHandler(async (req, res) => {
|
||||
await ActivityService.deleteActivity(req.params.pk, {
|
||||
user: req.user,
|
||||
ip: req.ip,
|
||||
userAgent: req.get('user-agent'),
|
||||
});
|
||||
|
||||
return res.status(200).end();
|
||||
})
|
||||
);
|
||||
|
||||
export default router;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Query } from '../types/query';
|
||||
import * as ItemsService from './items';
|
||||
import { Accountability } from '../types';
|
||||
|
||||
export enum Action {
|
||||
CREATE = 'create',
|
||||
@@ -22,3 +23,15 @@ export const readActivities = async (query?: Query) => {
|
||||
export const readActivity = async (pk: string | number, query?: Query) => {
|
||||
return await ItemsService.readItem('directus_activity', pk, query);
|
||||
};
|
||||
|
||||
export const updateActivity = async (
|
||||
pk: string | number,
|
||||
data: Record<string, any>,
|
||||
accountability: Accountability
|
||||
) => {
|
||||
return await ItemsService.updateItem('directus_activity', pk, data, accountability);
|
||||
};
|
||||
|
||||
export const deleteActivity = async (pk: string | number, accountability?: Accountability) => {
|
||||
return await ItemsService.deleteItem('directus_activity', pk, accountability);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user