tvpl.api

<back to all web services

UpdateDocumentRequest

Requires Authentication
The following routes are available for this service:
POST/document/update

export class BasicDocument
{
    // @Required()
    public title: string;

    // @StringLength(4000)
    public description: string;

    // @StringLength(500)
    public owner?: string;

    public documentPolicyId?: number;
    public updateDocumentId?: number;
    public effectBeginDate?: string;
    public effectEndDate?: string;
    public issuingAgencyId?: number;
    public documentTypeId?: number;
    public documentGroupId?: number;
    public subjectId?: number;
    // @StringLength(500)
    public signBy?: string;

    public signDate?: string;
    public statusId?: number;
    public isInternal: boolean;
    public documentNumber?: string;
    public documentCode?: string;
    public isUrgent?: boolean;
    public scopeType?: number;
    public isActive?: boolean;

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

export class DocumentSearchResultItem
{
    public title?: string;
    public description: string;
    public owner?: string;
    public documentPolicyId?: number;
    public updateDocumentId?: number;
    public effectBeginDate?: string;
    public effectEndDate?: string;
    public issuingAgencyId?: number;
    public subjectId?: number;
    public signBy?: string;
    public signDate?: string;
    public updatedAt?: string;
    public statusId?: number;
    public isInternal: boolean;
    public documentNumber?: string;
    public documentCode?: string;
    public isUrgent?: boolean;
    public id: number;
    public reasonReturn?: string;
    public accountId?: number;
    public approverId?: number;
    // @StringLength(500)
    public updatedBy?: string;

    // @StringLength(500)
    public createdBy?: string;

    public isParty?: boolean;
    public isRevisionRequested?: boolean;
    public isPrivate?: boolean;
    public departmentId?: number;
    public publicationDate?: string;
    public processStatusId: number;
    public documentTypeId?: number;
    public documentGroupId?: number;
    public accountName?: string;
    public acceptAccountName?: string;
    public documentGroupText?: string;
    public processStatusText?: string;
    public documentTypeText?: string;
    public departmentText?: string;
    public statusText?: string;
    public issuingAgencyText?: string;
    public subjectText?: string;
    public comment?: string;
    public submitComment?: string;
    public fullFile?: string;
    public parthFile?: string;
    public isActive?: boolean;
    public stepOrder?: number;
    public stepCount?: number;

    public constructor(init?: Partial<DocumentSearchResultItem>) { (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 UserLogin
{
    // @Required()
    public name: string;

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

export class UserProfile extends UserLogin
{
    public id: number;
    public fullName?: string;
    public email?: string;
    public departmentId?: number;
    public partyGroupId?: number;
    public avatar?: string;
    public telephone?: string;
    public birthday?: string;
    public createdAt?: string;
    public updatedAt?: string;
    public failedLoginCount: number;
    // @Ignore()
    public roles: number[];

    public lastLoginDate?: string;

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

export class ApproversProfile
{
    public userProfiles?: UserProfile[];
    public processStatusId: number;
    public processTitle: string;
    public actionButtonLabel?: string;
    public processDescription: string;
    public isApprovalRequired: boolean;
    public isFinalStep: boolean;
    public stepOrder: number;

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

export class CurrentApprover
{
    public approverId?: number;
    public status?: string;
    public processStatusId: number;
    public processTitle: string;
    public actionButtonLabel?: string;
    public processDescription: string;
    public isApprovalRequired: boolean;
    public isFinalStep: boolean;
    public stepOrder: number;

    public constructor(init?: Partial<CurrentApprover>) { (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 DocumentDetail extends DocumentSearchResultItem
{
    public partUploadedFile?: UploadedFileAttach;
    public compactUploadedFile?: UploadedFileAttach;
    public analysisUploadedFile?: UploadedFileAttach;
    public fullUploadedFile?: UploadedFileAttach;
    public createdAt: string;
    public nextApprover?: ApproversProfile;
    public currentApprover?: CurrentApprover;
    public attachFiles?: UploadedFileAttach[];
    public hasReadPermission: boolean;
    public canGrantReadPermission: boolean;
    public basisDocument?: SimpleDocumentRelation[];
    public basisForDocument?: SimpleDocumentRelation[];
    public mainDocument?: SimpleDocumentRelation;
    public referenceDocument?: SimpleDocumentRelation[];
    public referencedByDocument?: SimpleDocumentRelation[];
    public replacedDocument?: SimpleDocumentRelation[];
    public replacedByDocument?: SimpleDocumentRelation[];
    public expiredDocument?: SimpleDocumentRelation[];
    public expiredByDocument?: SimpleDocumentRelation[];
    public updateForDocument?: SimpleDocumentRelation;
    public scopeType?: number;
    public stepOrder: number;

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

export class DocumentDetailResponse implements IResponseRequest
{
    public data: DocumentDetail;
    public code: number;
    public message: string;

    public constructor(init?: Partial<DocumentDetailResponse>) { (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 UpdateDocumentRequest extends BasicDocument
{
    public partUploadedFile?: UploadedFiles;
    public compactUploadedFile?: UploadedFiles;
    public analysisUploadedFile?: UploadedFiles;
    public fullUploadedFile?: UploadedFiles;
    public attachFiles?: UploadedFiles[];
    public basisDocumentId?: number[];
    public referenceDocumentId?: number[];
    public replacedDocumentId?: number[];
    public expiredDocumentId?: number[];
    public id: number;

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

TypeScript UpdateDocumentRequest 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.

POST /document/update HTTP/1.1 
Host: etc-api.vsmlab.vn 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	partUploadedFile: 
	{
		id: 0,
		uploadedFile: String,
		subDocumentId: 0,
		stepId: 0,
		code: 0,
		fileName: String,
		filekey: String,
		fileUrl: String,
		checksum: String,
		eTag: String,
		fileSize: 0
	},
	compactUploadedFile: 
	{
		id: 0,
		uploadedFile: String,
		subDocumentId: 0,
		stepId: 0,
		code: 0,
		fileName: String,
		filekey: String,
		fileUrl: String,
		checksum: String,
		eTag: String,
		fileSize: 0
	},
	analysisUploadedFile: 
	{
		id: 0,
		uploadedFile: String,
		subDocumentId: 0,
		stepId: 0,
		code: 0,
		fileName: String,
		filekey: String,
		fileUrl: String,
		checksum: String,
		eTag: String,
		fileSize: 0
	},
	fullUploadedFile: 
	{
		id: 0,
		uploadedFile: String,
		subDocumentId: 0,
		stepId: 0,
		code: 0,
		fileName: String,
		filekey: String,
		fileUrl: String,
		checksum: String,
		eTag: String,
		fileSize: 0
	},
	attachFiles: 
	[
		{
			id: 0,
			uploadedFile: String,
			subDocumentId: 0,
			stepId: 0,
			code: 0,
			fileName: String,
			filekey: String,
			fileUrl: String,
			checksum: String,
			eTag: String,
			fileSize: 0
		}
	],
	basisDocumentId: 
	[
		0
	],
	referenceDocumentId: 
	[
		0
	],
	replacedDocumentId: 
	[
		0
	],
	expiredDocumentId: 
	[
		0
	],
	id: 0,
	title: String,
	description: String,
	owner: String,
	documentPolicyId: 0,
	updateDocumentId: 0,
	effectBeginDate: "0001-01-01T00:00:00.0000000+07:06",
	effectEndDate: "0001-01-01T00:00:00.0000000+07:06",
	issuingAgencyId: 0,
	documentTypeId: 0,
	documentGroupId: 0,
	subjectId: 0,
	signBy: String,
	signDate: "0001-01-01T00:00:00.0000000+07:06",
	statusId: 0,
	isInternal: False,
	documentNumber: String,
	documentCode: String,
	isUrgent: False,
	scopeType: 0,
	isActive: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	data: 
	{
		partUploadedFile: 
		{
			fileType: String,
			subDocumentId: 0,
			stepId: 0,
			id: 0,
			accessType: Public,
			createdBy: 0,
			fileName: String,
			filekey: String,
			fileUrl: String,
			checksum: String,
			eTag: String,
			fileSize: 0
		},
		compactUploadedFile: 
		{
			fileType: String,
			subDocumentId: 0,
			stepId: 0,
			id: 0,
			accessType: Public,
			createdBy: 0,
			fileName: String,
			filekey: String,
			fileUrl: String,
			checksum: String,
			eTag: String,
			fileSize: 0
		},
		analysisUploadedFile: 
		{
			fileType: String,
			subDocumentId: 0,
			stepId: 0,
			id: 0,
			accessType: Public,
			createdBy: 0,
			fileName: String,
			filekey: String,
			fileUrl: String,
			checksum: String,
			eTag: String,
			fileSize: 0
		},
		fullUploadedFile: 
		{
			fileType: String,
			subDocumentId: 0,
			stepId: 0,
			id: 0,
			accessType: Public,
			createdBy: 0,
			fileName: String,
			filekey: String,
			fileUrl: String,
			checksum: String,
			eTag: String,
			fileSize: 0
		},
		nextApprover: 
		{
			userProfiles: 
			[
				{
					id: 0,
					fullName: String,
					email: String,
					departmentId: 0,
					partyGroupId: 0,
					avatar: String,
					telephone: String,
					birthday: "0001-01-01T00:00:00.0000000+07:06",
					createdAt: "0001-01-01T00:00:00.0000000+07:06",
					updatedAt: "0001-01-01T00:00:00.0000000+07:06",
					failedLoginCount: 0,
					roles: 
					[
						0
					],
					lastLoginDate: "0001-01-01T00:00:00.0000000+07:06",
					name: String
				}
			],
			processStatusId: 0,
			processTitle: String,
			actionButtonLabel: String,
			processDescription: String,
			isApprovalRequired: False,
			isFinalStep: False,
			stepOrder: 0
		},
		currentApprover: 
		{
			approverId: 0,
			status: String,
			processStatusId: 0,
			processTitle: String,
			actionButtonLabel: String,
			processDescription: String,
			isApprovalRequired: False,
			isFinalStep: False,
			stepOrder: 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
			}
		],
		hasReadPermission: False,
		canGrantReadPermission: False,
		basisDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		basisForDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		mainDocument: 
		{
			id: 0,
			title: String,
			documentCode: String,
			publicationDate: "0001-01-01T00:00:00.0000000+07:06"
		},
		referenceDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		referencedByDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		replacedDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		replacedByDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		expiredDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		expiredByDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		updateForDocument: 
		{
			id: 0,
			title: String,
			documentCode: String,
			publicationDate: "0001-01-01T00:00:00.0000000+07:06"
		},
		scopeType: 0,
		stepOrder: 0,
		title: String,
		description: String,
		owner: String,
		documentPolicyId: 0,
		updateDocumentId: 0,
		effectBeginDate: "0001-01-01T00:00:00.0000000+07:06",
		effectEndDate: "0001-01-01T00:00:00.0000000+07:06",
		issuingAgencyId: 0,
		subjectId: 0,
		signBy: String,
		signDate: "0001-01-01T00:00:00.0000000+07:06",
		updatedAt: "0001-01-01T00:00:00.0000000+07:06",
		statusId: 0,
		isInternal: False,
		documentNumber: String,
		documentCode: String,
		isUrgent: False,
		id: 0,
		reasonReturn: String,
		accountId: 0,
		approverId: 0,
		updatedBy: String,
		createdBy: String,
		isParty: False,
		isRevisionRequested: False,
		isPrivate: False,
		departmentId: 0,
		publicationDate: "0001-01-01T00:00:00.0000000+07:06",
		processStatusId: 0,
		documentTypeId: 0,
		documentGroupId: 0,
		accountName: String,
		acceptAccountName: String,
		documentGroupText: String,
		processStatusText: String,
		documentTypeText: String,
		departmentText: String,
		statusText: String,
		issuingAgencyText: String,
		subjectText: String,
		comment: String,
		submitComment: String,
		fullFile: String,
		parthFile: String,
		isActive: False,
		stepOrder: 0,
		stepCount: 0
	},
	code: 0,
	message: String
}