38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import { ArgumentValidator } from './ArgumentValidator';
|
|
|
|
/**
|
|
* @class PagingRequest - Paging request model
|
|
*/
|
|
export class PagingRequest {
|
|
/**
|
|
* @property {number} pageNumber - The page number of the request.
|
|
*/
|
|
pageNumber: number;
|
|
|
|
/**
|
|
* @property {number} pageSize - The page size of the request.
|
|
*/
|
|
pageSize: number;
|
|
|
|
/**
|
|
* @constructor - Creates a new instance of the PagingRequest class.
|
|
* @param {number} pageNumber - The page number of the request. Must be greater than 0.
|
|
* @param {number} pageSize - The page size of the request. Must be greater than 0 and less than 1001.
|
|
* @returns {PagingRequest} - A new instance of the PagingRequest class.
|
|
* @throws {Error} - Thrown when the pageNumber is less than 1.
|
|
* @throws {Error} - Thrown when the pageSize is less than 1 or greater than 1000.
|
|
*/
|
|
constructor(pageNumber: number, pageSize: number) {
|
|
if (ArgumentValidator.isValidPageNumber(pageNumber) === false) {
|
|
throw new Error('pageNumber must be greater than 0.');
|
|
}
|
|
|
|
if (ArgumentValidator.isValidPageSize(pageSize) === false) {
|
|
throw new Error('pageSize must be greater than 0 and less than 1001.');
|
|
}
|
|
|
|
this.pageNumber = pageNumber;
|
|
this.pageSize = pageSize;
|
|
}
|
|
}
|