38 lines
943 B
TypeScript
38 lines
943 B
TypeScript
import type { IExcursionCard, IExcursionsFilter } from '@/types'
|
|
import { excursions } from "@/constants";
|
|
|
|
interface IGetExcursionsRequest {
|
|
limit: number;
|
|
offset: number;
|
|
filter?: Partial<IExcursionsFilter>;
|
|
}
|
|
|
|
export default class ApiService {
|
|
getExcursions({ limit, offset, filter }: IGetExcursionsRequest): IExcursionCard[] {
|
|
console.log(limit, offset, filter);
|
|
|
|
let result = excursions.slice(offset, offset + limit)
|
|
|
|
|
|
if (filter) {
|
|
if (filter.city) {
|
|
result = result.filter((card) => card.city.includes(filter.city))
|
|
}
|
|
if (filter.minCost) {
|
|
result = result.filter((card) => card.cost >= +filter.minCost)
|
|
}
|
|
if (filter.maxCost) {
|
|
result = result.filter((card) => card.cost <= +filter.maxCost)
|
|
}
|
|
if (filter.countPeople) {
|
|
result = result.filter((card) => (
|
|
card.minCountPeople <= filter.countPeople &&
|
|
card.maxCountPeople >= filter.countPeople)
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
return result
|
|
}
|
|
}
|