All files / src/services country.service.ts

56.25% Statements 9/16
0% Branches 0/2
33.33% Functions 1/3
50% Lines 7/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 501x 1x     1x 1x     1x     17x   17x                                                                        
import { bind, BindingScope } from '@loopback/core';
import { repository } from '@loopback/repository';
 
import { BaseResponses, Country } from '@logchain/models';
import { CountryRepository } from '@logchain/repositories';
import { BaseService } from '.';
 
@bind({ scope: BindingScope.TRANSIENT })
export class CountryService extends BaseService<Country> {
  constructor(
    @repository(CountryRepository)
    public countryRepo: CountryRepository,
  ) {
    super();
  }
 
  /**
   * Builds the query.
   * @param q The query string.
   */
  async buildSearchQuery(q?: string) {
    if (!q) {
      return;
    }
 
    const ilikeValue = this.buildILikeValue(q);
    this.filter_builder.impose({
      or: [
        {
          code: ilikeValue,
        },
        { name: ilikeValue },
      ],
    });
  }
 
  /**
   * Get array countries based on filter.
   * @param filter
   */
  async find(): Promise<BaseResponses<Country>> {
    // only get countries active
    this.filter_builder.impose({ status: true });
    // allow get all countries
    this.filter_builder.limit(Number.MAX_SAFE_INTEGER);
 
    return this.countryRepo.findWithPaging(this.filter_builder.build());
  }
}