import { ImageRequest, VideoRequest } from './PixabayRequest';

/**
 * Validate requests if all information provided in requests are valid
 * If something is wrong with request (e.g minus number) it'll throw an Error
 * @param request - request to validate
 * @throws {BadRequest}
 */
export const validateRequest = (request: ImageRequest | VideoRequest) => {
    if (request.q && request.q.length > 100) {
        throw new Error(`Bad Request: request.q: length = ${request.q.length}.Length should not exceed 100 characters`);
    }
    if (request.per_page) {
        if (request.per_page < 3 || request.per_page > 200) {
            throw new Error(`Bad Request: request.per_page: '${request.per_page}', but accepted values are  3 - 200`);
        }
    }
    if (request.page && request.page < 1) {
        throw new Error(`Bad Request: request.page: '${request.page}' should be higher than 0`);
    }
};
