* feat: Record events in DB * feat: events API * First pass, hacky activity feed * WIP * Reset dashboard * feat: audit log UI feat: store ip address * chore: Document events.list api * fix: command specs * await event create * fix: backlinks service * tidy * fix: Hide audit log menu item if not admin
34 lines
598 B
JavaScript
34 lines
598 B
JavaScript
// @flow
|
|
import BaseModel from './BaseModel';
|
|
import User from './User';
|
|
|
|
class Event extends BaseModel {
|
|
id: string;
|
|
name: string;
|
|
modelId: ?string;
|
|
actorId: string;
|
|
actorIpAddress: ?string;
|
|
documentId: string;
|
|
collectionId: ?string;
|
|
userId: string;
|
|
createdAt: string;
|
|
actor: User;
|
|
data: { name: string, email: string };
|
|
|
|
get model() {
|
|
return this.name.split('.')[0];
|
|
}
|
|
|
|
get verb() {
|
|
return this.name.split('.')[1];
|
|
}
|
|
|
|
get verbPastTense() {
|
|
const v = this.verb;
|
|
if (v.endsWith('e')) return `${v}d`;
|
|
return `${v}ed`;
|
|
}
|
|
}
|
|
|
|
export default Event;
|