| GET | /document/detail |
|---|
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 DocumentDetailRequest
{
public id: number;
public constructor(init?: Partial<DocumentDetailRequest>) { (Object as any).assign(this, init); }
}
TypeScript DocumentDetailRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /document/detail HTTP/1.1 Host: etc-api.vsmlab.vn Accept: text/jsv
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
}