tvpl.api

<back to all web services

GetWorkflowStepRequest

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

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

    public stepOrder?: 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;
    // @Required()
    public description: string;

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

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

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

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

    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',
}

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 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 constructor(init?: Partial<SimpleDocumentRelation>) { (Object as any).assign(this, init); }
}

export class WorkFlowProfile
{
    public id: number;
    public fullName?: string;
    public email?: string;
    public departmentId?: number;
    public avatar?: string;
    public telephone?: string;
    public birthday?: string;
    public confirmStatus?: number;

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

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 enum AccessType
{
    Public = 'Public',
    Restricted = 'Restricted',
}

export class UploadedFileModel extends BasicUploadedFile
{
    public id: number;
    public accessType: AccessType;
    public createdBy: number;
    public createdDate: string;

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

export class UploadedFileAttach extends UploadedFileModel
{
    public fileType: string;
    public subDocumentId?: number;
    public stepId?: number;

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

export class WorkflowStepDetail extends WorkflowStep
{
    public departments?: Category[];
    public basisDocuments?: SimpleDocumentRelation[];
    public attachedDocuments?: SimpleDocumentRelation[];
    public referenceDocuments?: SimpleDocumentRelation[];
    public mainAssignees?: WorkFlowProfile[];
    public attachFiles?: UploadedFileAttach[];

    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,
					sortOrder: 0,
					lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
					children: 
					[
						{
							id: 0,
							level: 0,
							sortOrder: 0,
							lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
							children: 
							[
								{
									id: 0,
									level: 0,
									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"
				}
			],
			attachedDocuments: 
			[
				{
					id: 0,
					title: String,
					documentCode: String,
					publicationDate: "0001-01-01T00:00:00.0000000+07:06"
				}
			],
			referenceDocuments: 
			[
				{
					id: 0,
					title: String,
					documentCode: String,
					publicationDate: "0001-01-01T00:00:00.0000000+07:06"
				}
			],
			mainAssignees: 
			[
				{
					id: 0,
					fullName: String,
					email: String,
					departmentId: 0,
					avatar: String,
					telephone: String,
					birthday: "0001-01-01T00:00:00.0000000+07:06",
					confirmStatus: 0
				}
			],
			attachFiles: 
			[
				{
					fileType: String,
					subDocumentId: 0,
					stepId: 0,
					id: 0,
					accessType: Public,
					createdBy: 0,
					fileName: String,
					filekey: String,
					fileUrl: String,
					checksum: String,
					eTag: String,
					fileSize: 0
				}
			],
			id: 0,
			workflowId: 0,
			stepOrder: 0,
			stepName: String,
			isRequired: False,
			slaLegalValue: 0,
			slaLegalIsByDay: False,
			slaInternalValue: 0,
			slaInternalIsByDay: False,
			requireAttachment: False,
			description: String,
			createdBy: 0,
			departmentIds: 
			[
				0
			],
			stepBasisDocumentIds: 
			[
				0
			],
			stepAttachedIds: 
			[
				0
			],
			mainAssigneeIds: 
			[
				0
			]
		}
	]
}