Merge pull request #61 from directus/comment

Comment
This commit is contained in:
Rijk van Zanten
2020-07-10 15:13:20 -04:00
committed by GitHub
3 changed files with 73 additions and 1 deletions

View File

@@ -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') {

View File

@@ -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;

View File

@@ -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);
};