| POST | /report/search |
|---|
export class PagingRequest
{
public page: number;
public limit: number;
public constructor(init?: Partial<PagingRequest>) { (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 enum DocumentSearchStage
{
All = 'All',
AllProcessing = 'AllProcessing',
Draft = 'Draft',
PendingApproval = 'PendingApproval',
IsRevisionRequested = 'IsRevisionRequested',
PendingCompilation = 'PendingCompilation',
PendingReport = 'PendingReport',
Published = 'Published',
Active = 'Active',
InActive = 'InActive',
}
export enum SearchOrderBy
{
UpdatedDateDesc = 'UpdatedDateDesc',
PublishDateDesc = 'PublishDateDesc',
}
export class ReportSearch extends PagingRequest
{
public columns?: string[];
public title?: string;
public typeId?: number;
public groupId?: number;
public subjectId?: number;
public isUrgent?: boolean;
public documentSearchStage: DocumentSearchStage;
public isInternal?: boolean;
public fromDate?: string;
public toDate?: string;
public statusId?: number;
public issuingAgencyId?: number;
public orderBy: SearchOrderBy;
public isParty?: boolean;
public constructor(init?: Partial<ReportSearch>) { super(init); (Object as any).assign(this, init); }
}
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.
POST /report/search HTTP/1.1
Host: etc-api.vsmlab.vn
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
columns:
[
String
],
title: String,
typeId: 0,
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",
statusId: 0,
issuingAgencyId: 0,
orderBy: UpdatedDateDesc,
isParty: False,
page: 1,
limit: 10
}
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
}