tvpl.api

<back to all web services

GetWorkflowStepRequest

Requires Authentication
The following routes are available for this service:
GET/WorkflowStep/by-workflow

export class BasicUploadedFile
{
    public fileName: string;
    public filekey: string;
    public fileUrl: string;
    public checksum: string;
    public eTag: string;
    public fileSize: number;

    public constructor(init?: Partial<BasicUploadedFile>) { (Object as any).assign(this, init); }
}

export class UploadedFiles extends BasicUploadedFile
{
    public id?: number;
    public uploadedFile: string;
    public subDocumentId?: number;
    public stepId?: number;
    public code: number;

    public constructor(init?: Partial<UploadedFiles>) { super(init); (Object as any).assign(this, init); }
}

export class BasicSignerConfig
{
    public subDocumentId?: number;
    public departmentId?: number;
    public signerType: number;
    public signerRefId: number;
    // @Ignore()
    public signerRefText?: string;

    public actionType: number;
    public orderIndex: number;

    public constructor(init?: Partial<BasicSignerConfig>) { (Object as any).assign(this, init); }
}

export class SignerConfig extends BasicSignerConfig
{
    public id: number;
    public documentId: number;
    public stepId?: number;

    public constructor(init?: Partial<SignerConfig>) { super(init); (Object as any).assign(this, init); }
}

export class WorkFlowProfile
{
    public id: number;
    public name?: string;
    public fullName?: string;
    public email?: string;
    public departmentId?: number;
    public avatar?: string;
    public telephone?: string;
    public birthday?: string;
    public confirmStatus?: number;
    public confirmStatusText?: string;
    public signAt?: string;
    public signedFileId?: number;
    public originalFileId?: number;
    public signedFileName?: string;
    public isSigned: boolean;
    public signStatusText?: string;

    public constructor(init?: Partial<WorkFlowProfile>) { (Object as any).assign(this, init); }
}

export class Roles
{
    public id: number;
    // @StringLength(50)
    public name: string;

    public createdAt?: string;
    public deletedAt?: string;
    public updatedAt?: string;
    public updatedBy?: number;
    public deletedBy?: number;
    public createdBy?: number;
    // @Ignore()
    public permission?: string[];

    public constructor(init?: Partial<Roles>) { (Object as any).assign(this, init); }
}

export class SignerConfigDetail extends SignerConfig
{
    public profile?: WorkFlowProfile;
    public role?: Roles;

    public constructor(init?: Partial<SignerConfigDetail>) { super(init); (Object as any).assign(this, init); }
}

export class StepAttached
{
    public id: number;
    public documentCode?: string;
    public title?: string;
    public isSequentialSigning?: boolean;
    public pendingSignFile?: UploadedFiles;
    public originalFile?: UploadedFiles;
    public signerConfigs?: SignerConfigDetail[];

    public constructor(init?: Partial<StepAttached>) { (Object as any).assign(this, init); }
}

export class WorkflowStep
{
    public id: number;
    // @References("typeof(tvpl.data.Models.Document)")
    public workflowId: number;

    public stepOrder?: number;
    public statusId?: number;
    // @Required()
    // @StringLength(255)
    public stepName: string;

    // @Required()
    public isRequired: boolean;

    public slaLegalValue?: number;
    public slaLegalIsByDay?: boolean;
    public slaInternalValue?: number;
    public slaInternalIsByDay?: boolean;
    public requireAttachment: boolean;
    public isUsingForm?: boolean;
    // @Required()
    public description: string;

    public createdBy: number;
    // @Ignore()
    public departmentIds?: number[];

    // @Ignore()
    public mainAssigneeIds?: number[];

    // @Ignore()
    public coDepartmentIds?: number[];

    // @Ignore()
    public supportingAssigneeIds?: number[];

    // @Ignore()
    public stepBasisDocumentIds?: number[];

    // @Ignore()
    public attachedDocuments?: StepAttached[];

    public constructor(init?: Partial<WorkflowStep>) { (Object as any).assign(this, init); }
}

export enum CategoryTypes
{
    Department = 'Department',
    PartyGroup = 'PartyGroup',
    DocGroup = 'DocGroup',
    DocType = 'DocType',
    IssuingAgency = 'IssuingAgency',
    Status = 'Status',
    Subjects = 'Subjects',
    Workflow = 'Workflow',
    WorkStatus = 'WorkStatus',
    StepStatus = 'StepStatus',
    SignStatus = 'SignStatus',
}

export class CreateCategoryModel
{
    public name: string;
    public description: string;
    public type: CategoryTypes;
    public isParty: boolean;
    // @Ignore()
    public childList?: number[];

    public constructor(init?: Partial<CreateCategoryModel>) { (Object as any).assign(this, init); }
}

export class Category extends CreateCategoryModel
{
    public id: number;
    public level: number;
    public key?: string;
    public sortOrder: number;
    public lastUpdate?: string;
    // @Ignore()
    public children: Category[];

    public constructor(init?: Partial<Category>) { super(init); (Object as any).assign(this, init); }
}

export class SimpleDocumentRelation
{
    public id: number;
    public title: string;
    public documentCode: string;
    public publicationDate?: string;
    public isSequentialSigning?: boolean;
    public statusText?: string;
    public documentTypeId?: number;

    public constructor(init?: Partial<SimpleDocumentRelation>) { (Object as any).assign(this, init); }
}

export class WorkflowStepDetail extends WorkflowStep
{
    public departments?: Category[];
    public coDepartments?: Category[];
    public basisDocuments?: SimpleDocumentRelation[];
    public referenceDocuments?: SimpleDocumentRelation[];
    public mainAssignees?: WorkFlowProfile[];
    public supportingAssignees?: WorkFlowProfile[];
    public statusKey?: string;
    public statusText?: string;
    // @Ignore()
    public canRead?: boolean;

    // @Ignore()
    public canWrite?: boolean;

    // @Ignore()
    public canUpload?: boolean;

    public reasonReturn?: string;
    public returnDate?: string;

    public constructor(init?: Partial<WorkflowStepDetail>) { super(init); (Object as any).assign(this, init); }
}

export class GetWorkflowStepResponse implements IResponseRequest
{
    public code: number;
    public message: string;
    public data?: WorkflowStepDetail[];

    public constructor(init?: Partial<GetWorkflowStepResponse>) { (Object as any).assign(this, init); }
}

export class GetWorkflowStepRequest
{
    public workflowId: number;

    public constructor(init?: Partial<GetWorkflowStepRequest>) { (Object as any).assign(this, init); }
}

TypeScript GetWorkflowStepRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /WorkflowStep/by-workflow HTTP/1.1 
Host: etc-api.vsmlab.vn 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	code: 0,
	message: String,
	data: 
	[
		{
			departments: 
			[
				{
					id: 0,
					level: 0,
					key: String,
					sortOrder: 0,
					lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
					children: 
					[
						{
							id: 0,
							level: 0,
							key: String,
							sortOrder: 0,
							lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
							children: 
							[
								{
									id: 0,
									level: 0,
									key: String,
									sortOrder: 0,
									lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
									name: String,
									description: String,
									type: Department,
									isParty: False,
									childList: 
									[
										0
									]
								}
							],
							name: String,
							description: String,
							type: Department,
							isParty: False,
							childList: 
							[
								0
							]
						}
					],
					name: String,
					description: String,
					type: Department,
					isParty: False,
					childList: 
					[
						0
					]
				}
			],
			coDepartments: 
			[
				{
					id: 0,
					level: 0,
					key: String,
					sortOrder: 0,
					lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
					children: 
					[
						{
							id: 0,
							level: 0,
							key: String,
							sortOrder: 0,
							lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
							children: 
							[
								{
									id: 0,
									level: 0,
									key: String,
									sortOrder: 0,
									lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
									name: String,
									description: String,
									type: Department,
									isParty: False,
									childList: 
									[
										0
									]
								}
							],
							name: String,
							description: String,
							type: Department,
							isParty: False,
							childList: 
							[
								0
							]
						}
					],
					name: String,
					description: String,
					type: Department,
					isParty: False,
					childList: 
					[
						0
					]
				}
			],
			basisDocuments: 
			[
				{
					id: 0,
					title: String,
					documentCode: String,
					publicationDate: "0001-01-01T00:00:00.0000000+07:06",
					isSequentialSigning: False,
					statusText: String,
					documentTypeId: 0
				}
			],
			referenceDocuments: 
			[
				{
					id: 0,
					title: String,
					documentCode: String,
					publicationDate: "0001-01-01T00:00:00.0000000+07:06",
					isSequentialSigning: False,
					statusText: String,
					documentTypeId: 0
				}
			],
			mainAssignees: 
			[
				{
					id: 0,
					name: String,
					fullName: String,
					email: String,
					departmentId: 0,
					avatar: String,
					telephone: String,
					birthday: "0001-01-01T00:00:00.0000000+07:06",
					confirmStatus: 0,
					confirmStatusText: String,
					signAt: "0001-01-01T00:00:00.0000000+07:06",
					signedFileId: 0,
					originalFileId: 0,
					signedFileName: String,
					isSigned: False,
					signStatusText: String
				}
			],
			supportingAssignees: 
			[
				{
					id: 0,
					name: String,
					fullName: String,
					email: String,
					departmentId: 0,
					avatar: String,
					telephone: String,
					birthday: "0001-01-01T00:00:00.0000000+07:06",
					confirmStatus: 0,
					confirmStatusText: String,
					signAt: "0001-01-01T00:00:00.0000000+07:06",
					signedFileId: 0,
					originalFileId: 0,
					signedFileName: String,
					isSigned: False,
					signStatusText: String
				}
			],
			statusKey: String,
			statusText: String,
			canRead: False,
			canWrite: False,
			canUpload: False,
			reasonReturn: String,
			returnDate: "0001-01-01T00:00:00.0000000+07:06",
			id: 0,
			workflowId: 0,
			stepOrder: 0,
			statusId: 0,
			stepName: String,
			isRequired: False,
			slaLegalValue: 0,
			slaLegalIsByDay: False,
			slaInternalValue: 0,
			slaInternalIsByDay: False,
			requireAttachment: False,
			isUsingForm: False,
			description: String,
			createdBy: 0,
			departmentIds: 
			[
				0
			],
			mainAssigneeIds: 
			[
				0
			],
			coDepartmentIds: 
			[
				0
			],
			supportingAssigneeIds: 
			[
				0
			],
			stepBasisDocumentIds: 
			[
				0
			],
			attachedDocuments: 
			[
				{
					id: 0,
					documentCode: String,
					title: String,
					isSequentialSigning: False,
					pendingSignFile: 
					{
						id: 0,
						uploadedFile: String,
						subDocumentId: 0,
						stepId: 0,
						code: 0,
						fileName: String,
						filekey: String,
						fileUrl: String,
						checksum: String,
						eTag: String,
						fileSize: 0
					},
					originalFile: 
					{
						id: 0,
						uploadedFile: String,
						subDocumentId: 0,
						stepId: 0,
						code: 0,
						fileName: String,
						filekey: String,
						fileUrl: String,
						checksum: String,
						eTag: String,
						fileSize: 0
					},
					signerConfigs: 
					[
						{
							profile: 
							{
								id: 0,
								name: String,
								fullName: String,
								email: String,
								departmentId: 0,
								avatar: String,
								telephone: String,
								birthday: "0001-01-01T00:00:00.0000000+07:06",
								confirmStatus: 0,
								confirmStatusText: String,
								signAt: "0001-01-01T00:00:00.0000000+07:06",
								signedFileId: 0,
								originalFileId: 0,
								signedFileName: String,
								isSigned: False,
								signStatusText: String
							},
							role: 
							{
								id: 0,
								name: String,
								createdAt: "0001-01-01T00:00:00.0000000+07:06",
								deletedAt: "0001-01-01T00:00:00.0000000+07:06",
								updatedAt: "0001-01-01T00:00:00.0000000+07:06",
								updatedBy: 0,
								deletedBy: 0,
								createdBy: 0,
								permission: 
								[
									String
								]
							},
							id: 0,
							documentId: 0,
							stepId: 0,
							subDocumentId: 0,
							departmentId: 0,
							signerType: 0,
							signerRefId: 0,
							signerRefText: String,
							actionType: 0,
							orderIndex: 0
						}
					]
				}
			]
		}
	]
}