From 569cb0457b4cdcffdf325bdfe8959d55e48efc25 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Fri, 4 Dec 2020 01:12:54 +0300 Subject: feat!: remove context schema from client This will allow for multiple event types in one Model. --- lib/event.model.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'lib/event.model.ts') diff --git a/lib/event.model.ts b/lib/event.model.ts index bea533d..665a35f 100644 --- a/lib/event.model.ts +++ b/lib/event.model.ts @@ -1,11 +1,11 @@ import { model, Schema, Model } from 'mongoose'; import cron from 'cron'; -import createEventSchema, { EventDocument } from './event.schema'; +import schema, { EventDocument } from './event.schema'; import { LogDocument } from './log.schema'; import { LogModel } from './log.model'; import Connection from './connection'; -export interface Event extends EventDocument { +export interface Event extends EventDocument { log(message: string): Promise; start(): void; complete(): void; @@ -14,15 +14,14 @@ export interface Event extends EventDocument { getLogs(): Promise; } -export interface EventModel extends Model> { +export interface EventModel extends Model> { findNextEvents(): Event[]; findMissedEvents(): Event[]; } const { CronJob } = cron; -const createEventModel = (connection: Connection, contextSchema: Schema): EventModel => { - const schema = createEventSchema(contextSchema); +const createEventModel = (connection: Connection): EventModel => { const LogModel: LogModel = connection.models['Log']; // Schema methods @@ -91,11 +90,11 @@ const createEventModel = (connection: Connection, contextSchema: Schema }); // Hooks - schema.pre>('save', async function () { + schema.pre('save', async function () { this.nextRunAt = this.computeNextRunAt(); }); - return connection.model, EventModel>('Event', schema); + return connection.model('Event', schema); }; -- cgit v1.2.3