mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-30 13:35:04 +02:00
Extract processor (#9614)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
@@ -3,7 +3,7 @@ import type { Plugin, Resource } from '@hcengineering/platform'
|
||||
import { plugin } from '@hcengineering/platform'
|
||||
import { CheckFunc, Method, ProcessFunction, Trigger } from '@hcengineering/process'
|
||||
import { TriggerFunc } from '@hcengineering/server-core'
|
||||
import { ExecuteFunc, TransformFunc } from './types'
|
||||
import { ExecuteFunc, RollbackFunc, TransformFunc } from './types'
|
||||
|
||||
export * from './types'
|
||||
|
||||
@@ -14,6 +14,8 @@ export const serverProcessId = 'server-process' as Plugin
|
||||
|
||||
export interface TriggerImpl extends Trigger {
|
||||
serverCheckFunc?: Resource<CheckFunc>
|
||||
rollbackFunc?: Resource<RollbackFunc>
|
||||
preventRollback?: boolean
|
||||
}
|
||||
|
||||
export interface MethodImpl<T extends Doc> extends Method<T> {
|
||||
@@ -33,6 +35,10 @@ export default plugin(serverProcessId, {
|
||||
FuncImpl: '' as Ref<Mixin<FuncImpl>>,
|
||||
TriggerImpl: '' as Ref<Mixin<TriggerImpl>>
|
||||
},
|
||||
rollbacks: {
|
||||
ToDoCloseRollback: '' as Resource<RollbackFunc>,
|
||||
ToDoCancellRollback: '' as Resource<RollbackFunc>
|
||||
},
|
||||
func: {
|
||||
RunSubProcess: '' as Resource<ExecuteFunc>,
|
||||
CreateToDo: '' as Resource<ExecuteFunc>,
|
||||
@@ -81,7 +87,6 @@ export default plugin(serverProcessId, {
|
||||
OnProcessRemove: '' as Resource<TriggerFunc>,
|
||||
OnStateRemove: '' as Resource<TriggerFunc>,
|
||||
OnExecutionCreate: '' as Resource<TriggerFunc>,
|
||||
OnExecutionTransition: '' as Resource<TriggerFunc>,
|
||||
OnProcessToDoClose: '' as Resource<TriggerFunc>,
|
||||
OnProcessToDoRemove: '' as Resource<TriggerFunc>,
|
||||
OnExecutionContinue: '' as Resource<TriggerFunc>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { Doc, Tx } from '@hcengineering/core'
|
||||
import { Execution, ExecutionError, MethodParams } from '@hcengineering/process'
|
||||
import { TriggerControl } from '@hcengineering/server-core'
|
||||
import { Card } from '@hcengineering/card'
|
||||
import { Doc, MeasureContext, PersonId, Ref, Tx, TxOperations } from '@hcengineering/core'
|
||||
import { Execution, ExecutionError, MethodParams, Trigger } from '@hcengineering/process'
|
||||
|
||||
export type ExecuteFunc = (
|
||||
params: MethodParams<Doc>,
|
||||
execution: Execution,
|
||||
control: TriggerControl
|
||||
control: ProcessControl
|
||||
) => Promise<ExecuteResult>
|
||||
|
||||
export type ExecuteResult = SuccessExecutionResult | ExecutionError
|
||||
@@ -19,6 +19,23 @@ export interface SuccessExecutionResult {
|
||||
export type TransformFunc = (
|
||||
value: any,
|
||||
props: Record<string, any>,
|
||||
control: TriggerControl,
|
||||
control: ProcessControl,
|
||||
execution: Execution
|
||||
) => Promise<any>
|
||||
|
||||
export interface ProcessMessage {
|
||||
account: PersonId
|
||||
event: Ref<Trigger>
|
||||
context: Record<string, any>
|
||||
execution?: Ref<Execution>
|
||||
card?: Ref<Card>
|
||||
}
|
||||
|
||||
export interface ProcessControl {
|
||||
ctx: MeasureContext
|
||||
client: TxOperations
|
||||
cache: Map<string, any>
|
||||
messageContext: Record<string, any>
|
||||
}
|
||||
|
||||
export type RollbackFunc = (context: Record<string, any>, control: ProcessControl) => Tx
|
||||
|
||||
Reference in New Issue
Block a user