All files / src/repositories/scan reason-config.repository.ts

70% Statements 7/10
100% Branches 0/0
0% Functions 0/2
62.5% Lines 5/8

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 521x 1x 1x 1x   1x                                                                                            
import {inject} from '@loopback/core';
import {DefaultCrudRepository} from '@loopback/repository';
import {LogChainDataSource} from '@logchain/datasources';
import {ReasonConfig, ReasonConfigRelations} from '@logchain/models/scan/reason-config.model';
 
export class ReasonConfigRepository extends DefaultCrudRepository<
  ReasonConfig,
  typeof ReasonConfig.prototype.id,
  ReasonConfigRelations
> {
  constructor(@inject('datasources.logchain') dataSource: LogChainDataSource) {
    super(ReasonConfig, dataSource);
  }
 
  async findByAction(action: string) {
    const result = await this.execute(
      `
    (
      SELECT 
        id,
        reason_code,
        reason_label,
        update_status,
        notification_text
      FROM reason_config
      WHERE UPPER(action) = UPPER($1)
      AND reason_code <> 'others'
      ORDER BY reason_label ASC
    )
 
    UNION
 
    (
      SELECT
        id,
        reason_code,
        reason_label,
        update_status,
        notification_text
      FROM reason_config
      WHERE UPPER(action) = UPPER($1)
      AND reason_code = 'others'
      ORDER BY reason_label ASC
    )
    `,
      [action],
    );
 
    return result;
  }
}