Employee email channel (#2711)

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
Denis Bykhov
2023-03-06 15:51:41 +07:00
committed by GitHub
parent 5696f216ca
commit 3179d122b8
9 changed files with 114 additions and 24 deletions
+15 -13
View File
@@ -39,24 +39,26 @@ export class ModifiedMiddleware extends BaseMiddleware implements Middleware {
}
async tx (ctx: SessionContext, tx: Tx): Promise<TxMiddlewareResult> {
tx.modifiedOn = Date.now()
if (this.storage.hierarchy.isDerived(tx._class, core.class.TxCreateDoc)) {
const createTx = tx as TxCreateDoc<Doc & { createOn: Timestamp }>
const hasCreateOn = this.storage.hierarchy.findAttribute(createTx.objectClass, 'createOn')
if (hasCreateOn !== undefined) {
createTx.attributes.createOn = tx.modifiedOn
}
}
if (this.storage.hierarchy.isDerived(tx._class, core.class.TxCollectionCUD)) {
const coltx = tx as TxCollectionCUD<Doc, AttachedDoc>
coltx.tx.modifiedOn = tx.modifiedOn
if (this.storage.hierarchy.isDerived(coltx.tx._class, core.class.TxCreateDoc)) {
const createTx = coltx.tx as TxCreateDoc<AttachedDoc & { createOn: Timestamp }>
if (tx.modifiedBy !== core.account.System) {
tx.modifiedOn = Date.now()
if (this.storage.hierarchy.isDerived(tx._class, core.class.TxCreateDoc)) {
const createTx = tx as TxCreateDoc<Doc & { createOn: Timestamp }>
const hasCreateOn = this.storage.hierarchy.findAttribute(createTx.objectClass, 'createOn')
if (hasCreateOn !== undefined) {
createTx.attributes.createOn = tx.modifiedOn
}
}
if (this.storage.hierarchy.isDerived(tx._class, core.class.TxCollectionCUD)) {
const coltx = tx as TxCollectionCUD<Doc, AttachedDoc>
coltx.tx.modifiedOn = tx.modifiedOn
if (this.storage.hierarchy.isDerived(coltx.tx._class, core.class.TxCreateDoc)) {
const createTx = coltx.tx as TxCreateDoc<AttachedDoc & { createOn: Timestamp }>
const hasCreateOn = this.storage.hierarchy.findAttribute(createTx.objectClass, 'createOn')
if (hasCreateOn !== undefined) {
createTx.attributes.createOn = tx.modifiedOn
}
}
}
}
return await this.provideTx(ctx, tx)
}