tvpl.api

<back to all web services

StatDocByGroupRequest

Requires Authentication
The following routes are available for this service:
POST/document/stat-search-by-group

export enum DocumentSearchStage
{
    All = 'All',
    AllProcessing = 'AllProcessing',
    Draft = 'Draft',
    PendingApproval = 'PendingApproval',
    IsRevisionRequested = 'IsRevisionRequested',
    PendingCompilation = 'PendingCompilation',
    PendingReport = 'PendingReport',
    Published = 'Published',
    Active = 'Active',
    InActive = 'InActive',
}

export class SimpleSearchFilter
{
    public title?: string;
    public groupId?: number;
    public subjectId?: number;
    public isUrgent?: boolean;
    public documentSearchStage: DocumentSearchStage;
    public isInternal?: boolean;
    public fromDate?: string;
    public toDate?: string;
    public typeId?: number;
    public statusId?: number;
    public issuingAgencyId?: number;
    public isParty?: boolean;

    public constructor(init?: Partial<SimpleSearchFilter>) { (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 SearchResponse implements IResponseRequest
{
    public totalCount: number;
    public code: number;
    public data: DocumentSearchResultItem[];
    public message: string;

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

export class StatDocByGroupRequest extends SimpleSearchFilter implements IPost
{

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

TypeScript StatDocByGroupRequest 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/stat-search-by-group HTTP/1.1 
Host: etc-api.vsmlab.vn 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	title: String,
	groupId: 0,
	subjectId: 0,
	isUrgent: False,
	documentSearchStage: All,
	isInternal: False,
	fromDate: "0001-01-01T00:00:00.0000000+07:06",
	toDate: "0001-01-01T00:00:00.0000000+07:06",
	typeId: 0,
	statusId: 0,
	issuingAgencyId: 0,
	isParty: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	totalCount: 0,
	code: 0,
	data: 
	[
		{
			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
		}
	],
	message: String
}