import { Log } from 'lib/Log'; import { DB } from 'lib/DB'; import { ServerError, Status } from 'nice-grpc'; import { Global } from '@nextgenleads/dnc'; const log = Log.child({ module: 'grpc', service: 'Global', method: 'addDisqualified', }); export async function addDisqualified(request: Global.AddDisqualifiedRequest): Promise { if (!request.phone_number || !request.source_code || !request.state || !request.vertical_id) { throw new ServerError(Status.INVALID_ARGUMENT, 'Missing required argument'); } const dRequest = Global.decodeAddDisqualifiedRequest(request); try { const dnc = await DB.DNC.findOne({ where: { company_id: null, phone_number: dRequest.phone_number, source_code: dRequest.source_code, vertical_id: dRequest.vertical_id, state: dRequest.state, }, }); if (dnc) { await DB.Disqualification.create({ DNCId: dnc.id, }); } else { log.warn('Unable to find DNC to disqualify'); } } catch (err) { log.error('Failed to disqualify DNC', err); } return {}; }