Skip to content

Commit

Permalink
[REF] querybuilder implemented
Browse files Browse the repository at this point in the history
  • Loading branch information
marluanespiritusanto committed Aug 17, 2021
1 parent 6fac8aa commit ceb8eab
Show file tree
Hide file tree
Showing 7 changed files with 126 additions and 126 deletions.
36 changes: 18 additions & 18 deletions src/modules/territorial-division/v1/strategies/district.strategy.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Raw, Repository } from 'typeorm';
import { Repository } from 'typeorm';

import { QueryDistrictDto } from '../dto';
import { District } from '../entities';
Expand All @@ -7,48 +7,48 @@ import { QueryStrategy } from '../interfaces';
export class DistrictStrategy
implements QueryStrategy<District, QueryDistrictDto>
{
find(
async find(
query: QueryDistrictDto,
repository: Repository<District>,
): Promise<District | District[]> {
const queryBuilder = repository.createQueryBuilder();

if (query.name) {
return repository.find({
where: {
name: Raw((name: string) => `LOWER(${name}) Like '%${query.name}%'`),
},
queryBuilder.where('LOWER(name) like LOWER(:name)', {
name: `%${query.name}%`,
});
}

if (query.code) {
return repository.findOne({
where: { code: query.code },
});
queryBuilder.andWhere('code = :code', { code: query.code });
}

if (query.identifier) {
return repository.findOne({
where: { identifier: query.identifier },
queryBuilder.andWhere('identifier = :identifier', {
identifier: query.identifier,
});
}

if (query.municipalityCode) {
return repository.find({
where: { municipalityCode: query.municipalityCode },
queryBuilder.andWhere('"municipalityCode" = :municipalityCode', {
municipalityCode: query.municipalityCode,
});
}

if (query.provinceCode) {
return repository.find({
where: { provinceCode: query.provinceCode },
queryBuilder.andWhere('"provinceCode" = :provinceCode', {
provinceCode: query.provinceCode,
});
}

if (query.regionCode) {
return repository.find({
where: { regionCode: query.regionCode },
queryBuilder.andWhere('"regionCode" = :regionCode', {
regionCode: query.regionCode,
});
}

return repository.find();
const data = await queryBuilder.getMany();

return data.length === 1 ? data[0] : data;
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Raw, Repository } from 'typeorm';
import { Repository } from 'typeorm';

import { QueryMunicipalityDto } from '../dto';
import { Municipality } from '../entities';
Expand All @@ -7,42 +7,42 @@ import { QueryStrategy } from '../interfaces';
export class MunicipalityStrategy
implements QueryStrategy<Municipality, QueryMunicipalityDto>
{
find(
async find(
query: QueryMunicipalityDto,
repository: Repository<Municipality>,
): Promise<Municipality | Municipality[]> {
const queryBuilder = repository.createQueryBuilder();

if (query.name) {
return repository.find({
where: {
name: Raw((name: string) => `LOWER(${name}) Like '%${query.name}%'`),
},
queryBuilder.where('LOWER(name) like LOWER(:name)', {
name: `%${query.name}%`,
});
}

if (query.code) {
return repository.findOne({
where: { code: query.code },
});
queryBuilder.andWhere('code = :code', { code: query.code });
}

if (query.identifier) {
return repository.findOne({
where: { identifier: query.identifier },
queryBuilder.andWhere('identifier = :identifier', {
identifier: query.identifier,
});
}

if (query.provinceCode) {
return repository.find({
where: { provinceCode: query.provinceCode },
queryBuilder.andWhere('"provinceCode" = :provinceCode', {
provinceCode: query.provinceCode,
});
}

if (query.regionCode) {
return repository.find({
where: { regionCode: query.regionCode },
queryBuilder.andWhere('"regionCode" = :regionCode', {
regionCode: query.regionCode,
});
}

return repository.find();
const data = await queryBuilder.limit(100).getMany();

return data.length === 1 ? data[0] : data;
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Raw, Repository } from 'typeorm';
import { Repository } from 'typeorm';

import { QueryNeighborhoodDto } from '../dto';
import { Neighborhood } from '../entities';
Expand All @@ -7,60 +7,60 @@ import { QueryStrategy } from '../interfaces';
export class NeighborhoodStrategy
implements QueryStrategy<Neighborhood, QueryNeighborhoodDto>
{
find(
async find(
query: QueryNeighborhoodDto,
repository: Repository<Neighborhood>,
): Promise<Neighborhood | Neighborhood[]> {
const queryBuilder = repository.createQueryBuilder();

if (query.name) {
return repository.find({
where: {
name: Raw((name: string) => `LOWER(${name}) Like '%${query.name}%'`),
},
queryBuilder.where('LOWER(name) like LOWER(:name)', {
name: `%${query.name}%`,
});
}

if (query.code) {
return repository.findOne({
where: { code: query.code },
});
queryBuilder.andWhere('code = :code', { code: query.code });
}

if (query.identifier) {
return repository.findOne({
where: { identifier: query.identifier },
queryBuilder.andWhere('identifier = :identifier', {
identifier: query.identifier,
});
}

if (query.sectionCode) {
return repository.find({
where: { sectionCode: query.sectionCode },
queryBuilder.andWhere('"sectionCode" = :sectionCode', {
sectionCode: query.sectionCode,
});
}

if (query.districtCode) {
return repository.find({
where: { districtCode: query.districtCode },
queryBuilder.andWhere('"districtCode" = :districtCode', {
districtCode: query.districtCode,
});
}

if (query.municipalityCode) {
return repository.find({
where: { municipalityCode: query.municipalityCode },
queryBuilder.andWhere('"municipalityCode" = :municipalityCode', {
municipalityCode: query.municipalityCode,
});
}

if (query.provinceCode) {
return repository.find({
where: { provinceCode: query.provinceCode },
queryBuilder.andWhere('"provinceCode" = :provinceCode', {
provinceCode: query.provinceCode,
});
}

if (query.regionCode) {
return repository.find({
where: { regionCode: query.regionCode },
queryBuilder.andWhere('"regionCode" = :regionCode', {
regionCode: query.regionCode,
});
}

return repository.find({ take: 100 });
const data = await queryBuilder.limit(100).getMany();

return data.length === 1 ? data[0] : data;
}
}
28 changes: 14 additions & 14 deletions src/modules/territorial-division/v1/strategies/province.strategy.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Raw, Repository } from 'typeorm';
import { Repository } from 'typeorm';

import { QueryProvinceDto } from '../dto';
import { Province } from '../entities';
Expand All @@ -7,36 +7,36 @@ import { QueryStrategy } from '../interfaces';
export class ProvinceStrategy
implements QueryStrategy<Province, QueryProvinceDto>
{
find(
async find(
query: QueryProvinceDto,
repository: Repository<Province>,
): Promise<Province | Province[]> {
const queryBuilder = repository.createQueryBuilder();

if (query.name) {
return repository.find({
where: {
name: Raw((name: string) => `LOWER(${name}) Like '%${query.name}%'`),
},
queryBuilder.where('LOWER(name) like LOWER(:name)', {
name: `%${query.name}%`,
});
}

if (query.code) {
return repository.findOne({
where: { code: query.code },
});
queryBuilder.andWhere('code = :code', { code: query.code });
}

if (query.identifier) {
return repository.findOne({
where: { identifier: query.identifier },
queryBuilder.andWhere('identifier = :identifier', {
identifier: query.identifier,
});
}

if (query.regionCode) {
return repository.find({
where: { regionCode: query.regionCode },
queryBuilder.andWhere('"regionCode" = :regionCode', {
regionCode: query.regionCode,
});
}

return repository.find();
const data = await queryBuilder.limit(100).getMany();

return data.length === 1 ? data[0] : data;
}
}
24 changes: 12 additions & 12 deletions src/modules/territorial-division/v1/strategies/region.strategy.ts
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
import { Raw, Repository } from 'typeorm';
import { Repository } from 'typeorm';

import { QueryRegionDto } from '../dto';
import { Region } from '../entities';
import { QueryStrategy } from '../interfaces';

export class RegionStrategy implements QueryStrategy<Region, QueryRegionDto> {
find(
async find(
query: QueryRegionDto,
repository: Repository<Region>,
): Promise<Region | Region[]> {
const queryBuilder = repository.createQueryBuilder();

if (query.name) {
return repository.find({
where: {
name: Raw((name: string) => `LOWER(${name}) Like '%${query.name}%'`),
},
queryBuilder.where('LOWER(name) like LOWER(:name)', {
name: `%${query.name}%`,
});
}

if (query.code) {
return repository.findOne({
where: { code: query.code },
});
queryBuilder.andWhere('code = :code', { code: query.code });
}

if (query.identifier) {
return repository.findOne({
where: { identifier: query.identifier },
queryBuilder.andWhere('identifier = :identifier', {
identifier: query.identifier,
});
}

return repository.find();
const data = await queryBuilder.limit(100).getMany();

return data.length === 1 ? data[0] : data;
}
}
Loading

0 comments on commit ceb8eab

Please sign in to comment.