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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | 1x 1x 1x 1x 1x | import { bind, /* inject, */ BindingScope } from '@loopback/core';
import {
AnyObject,
EntityNotFoundError,
FilterBuilder,
Options,
repository,
} from '@loopback/repository';
import { BaseResponses, Licence } from '../models';
import {
LicenceRepository,
LicenceViewRepository,
} from '../repositories';
import { BaseService } from './base.service';
import { LicenceView, LicenceViewWithRelations } from '@logchain/models/views';
import { LicenceDto } from '@logchain/dtos';
@bind({ scope: BindingScope.TRANSIENT })
export class LicenceService extends BaseService<Licence> {
constructor(
@repository(LicenceRepository)
public licence_repo: LicenceRepository,
@repository(LicenceViewRepository)
public licence_view_repo: LicenceViewRepository,
) {
super();
}
/**
* Get company documents based on filter.
*/
async find(): Promise<BaseResponses<LicenceView>> {
const filter_builder = new FilterBuilder<LicenceView>();
filter_builder.filter = this.filter_builder.filter as AnyObject;
return this.licence_view_repo.findWithPaging(filter_builder.build());
}
/**
* Get Licence by id or identifier
* @param id The user id
* @param filter The filter
* @returns Promise<Licence | null>
*/
async getByIdOrIdentifier(id: number, options?: Options): Promise<LicenceViewWithRelations> {
this.addWhereIdOrIdentifier(id);
const filter_builder = new FilterBuilder<LicenceView>();
filter_builder.filter = this.filter_builder.filter;
const licence = await this.licence_view_repo.findOne(
filter_builder.build(),
{
get_reference: true,
},
);
if (!licence) {
throw new EntityNotFoundError(this.licence_view_repo.entityClass, id);
}
return licence;
}
/**
* Create new company party
* @param {LicenceDto} data
* @param {Options} options?
* @returns Promise
*/
async create(data: LicenceDto, options: Options = {}): Promise<Licence> {
return this.licence_repo.create(data, options);
}
/**
* Update Licence by id or identifier
* @param id The id or identifier of Licence
* @param Licence The new Licence info
* @returns Promise<void>
*/
async updateByIdOrIdentifier(id: number, licence: Licence, options: Options = {}): Promise<Licence> {
await this.licence_repo.updateById(id, licence, options);
return licence;
}
/**
* Delete Licence by id or identifier
* @param id The id or identifier of Licence
* @returns Promise<void>
*/
async deleteByIdOrIdentifier(id: number, options: Options = {}): Promise<Licence> {
const licence = await this.licence_repo.findById(id, options);
await this.licence_repo.deleteById(id, options);
return licence;
}
/**
* Builds the query for user.
* @param q The query string.
*/
async buildSearchQuery(q?: string) {
if (!q) {
return;
}
const ilike_value = this.buildILikeValue(q);
// FILTER: name Should be a LIKE search
this.filter_builder.impose({
or: [
{
name: ilike_value,
},
{
description: ilike_value,
},
],
});
}
}
|