tvpl.api

<back to all web services

DocumentDetailRequest

Requires Authentication
The following routes are available for this service:
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 .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"data":{"partUploadedFile":{"fileType":"String","subDocumentId":0,"stepId":0,"id":0,"accessType":"Public","createdBy":0,"createdDate":"0001-01-01T00:00:00.0000000+07:06","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,"createdDate":"0001-01-01T00:00:00.0000000+07:06","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,"createdDate":"0001-01-01T00:00:00.0000000+07:06","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,"createdDate":"0001-01-01T00:00:00.0000000+07:06","fileName":"String","filekey":"String","fileUrl":"String","checksum":"String","eTag":"String","fileSize":0},"createdAt":"0001-01-01T00:00:00.0000000+07:06","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,"createdDate":"0001-01-01T00:00:00.0000000+07:06","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"}