event-local
Version:
Event client
40 lines (39 loc) • 1.01 kB
text/typescript
/**
* Класс маркер,
* его должен наследовать класс маркер домена
* (Например Test)
* например TestEvent, Далее конечный класс в
* страдательном залоге.
*
* Содержит структуры, и не содержит методы.
* Такое же требование и к потомкам
* class TestEvent extends DomenEvent {
*
* }
*
* class CreatedTestEvent extends TestEvent {
*
* }
*
* События принимают методы apply(Event ...)
*/
export class DomenEvent {
event_id: string;
event_type: string;
event_data: any;
entity_type: string;
entity_id: string;
triggering_event: string;
constructor(obj) {
for (let i in obj) {
this[i] = obj[i];
}
if(!this.event_type)
this.event_type = this.constructor.name;
try {
this.event_data = JSON.parse(this.event_data);
} catch (ex) {
console.log('no')
}
}
}