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

70% Statements 7/10
0% Branches 0/4
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 271x 1x 1x 1x   1x                                          
import {inject} from '@loopback/core';
import {DefaultCrudRepository} from '@loopback/repository';
import {LogChainDataSource} from '@logchain/datasources';
import {EmailConfig, EmailConfigRelations} from '@logchain/models/scan/email-config.model';
 
export class EmailConfigRepository extends DefaultCrudRepository<
  EmailConfig,
  typeof EmailConfig.prototype.id,
  EmailConfigRelations
> {
  constructor(@inject('datasources.logchain') dataSource: LogChainDataSource) {
    super(EmailConfig, dataSource);
  }
 
  async findByActionAndReasonCode(
    action: string,
    reasonCode: string,
  ): Promise<EmailConfig | null> {
    const results = (await this.execute(
      `SELECT * FROM email_config WHERE UPPER(action) = UPPER($1) AND reason_code = $2 LIMIT 1`,
      [action, reasonCode],
    )) as EmailConfig[];
 
    return results[0] ?? null;
  }
}