chore: get discount data with all relation

This commit is contained in:
Matin
2025-02-17 11:27:40 +03:30
parent 7f09e92abb
commit 9cdd7ef28e
8 changed files with 168 additions and 18 deletions
@@ -1,6 +1,54 @@
import { Injectable } from "@nestjs/common";
import { PaginationUtils } from "../../utils/providers/pagination.utils";
import { SearchCitiesDto } from "../DTO/cities-search-query.dto";
import { CityRepository } from "../repositories/city.repository";
import { ProvinceRepository } from "../repositories/province.repository";
@Injectable()
export class AddressService {
constructor() {}
constructor(
private readonly cityRepository: CityRepository,
private readonly provinceRepository: ProvinceRepository,
) {}
async getAllCities(queryDto: SearchCitiesDto) {
const { limit, skip } = PaginationUtils(queryDto);
const queryBuilder = this.cityRepository.createQueryBuilder("city");
if (queryDto.q) {
queryBuilder.andWhere("city.name ILIKE :q", { q: `%${queryDto.q}%` });
}
queryBuilder.skip(skip).take(limit);
const [cities, count] = await queryBuilder.getManyAndCount();
return {
cities,
count,
paginate: true,
};
}
async getAllProvinces(queryDto: SearchCitiesDto) {
const { limit, skip } = PaginationUtils(queryDto);
const queryBuilder = this.provinceRepository.createQueryBuilder("province");
if (queryDto.q) {
queryBuilder.andWhere("province.name ILIKE :q", { q: `%${queryDto.q}%` });
}
queryBuilder.skip(skip).take(limit);
const [provinces, count] = await queryBuilder.getManyAndCount();
return {
provinces,
count,
paginate: true,
};
}
}