@lejsutils/nest
v0.1.4
Published
Módulo não oficial da API do Legis para NestJS com objetivo de facilitar requisições bem como tratamento de webhooks vindos do sistema Legis
Downloads
14
Readme
LEJS NEST
Módulo não oficial da API do Legis para NestJS com objetivo de facilitar requisições bem como tratamento de webhooks vindos do sistema Legis
Instalação
Instale o pacote no seu projeto Nest com o comando:
npm i --save @lejsutils/nest
Para recebimento de eventos de webhooks recebidos do Legis é necessário utilizar o módulo EventEmitter do NestJS em conjunto com o próprio módulo do LEJS Nest
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { EventEmitter2, EventEmitterModule } from '@nestjs/event-emitter';
import { LegisModule } from '@lejsutils/nest';
@Module({
imports: [
EventEmitterModule.forRoot({
global: true,
}),
LegisModule.register({
eventEmitterClass: EventEmitter2,
webhooksBasePath: 'api/v1/jusapi',
webhooksPaths: {
certificates: 'companyLawsuits'
}
})
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
Essa configuração indica ao módulo para receber os callbacks de certificados no endpoint
POST: api/v1/jusapi/companyLawsuits
A partir dessa configuração básica é possível "ouvir" eventos de leitura de certificados de processos trabalhistas como no exemplo a seguir:
import { Injectable } from '@nestjs/common';
import { OnEvent } from '@nestjs/event-emitter';
import { CertificateReport } from '@lejsutils/nest';
@Injectable()
export classAppService {
@OnEvent('legisreport.certificate')
handleCertificate(event: CertificateReport) {
console.log(event);
}
}
É passado como segundo parâmetro ainda o payload original (como veio do Legis) caso algum detalhe adicional seja necessário
import { Injectable } from '@nestjs/common';
import { OnEvent } from '@nestjs/event-emitter';
import { CertificateReport } from '@lejsutils/nest';
import { CertificatesWebhookResponse } from "@lejsutils/client/webhooks";
@Injectable()
export classAppService {
@OnEvent('legisreport.certificate')
handleCertificate(event: CertificateReport, webhookPayload: CertificatesWebhookResponse) {
console.log(event);
console.log(webhookPayload);
}
}
Traduzindo os eventos em termos do seu domínio
É possível opcionalmente transformar o evento original do pacote através de uma função personalizada
@Module({
imports: [
EventEmitterModule.forRoot({
global: true,
}),
LegisModule.register({
eventEmitterClass: EventEmitter2,
webhooksBasePath: 'api/v1/jusapi',
webhooksPaths: {
certificates: 'companyLawsuits'
},
customEvents: {
certificate(report: CertificateReport) {
const myCustomObject = {
myCustomObjectId: `req-${report.requestId}`
}
return {
data: myCustomObject,
event: 'mycustom.event',
};
},
}
})
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
O campo "event" é opcional, caso seja necessário apenas transformação dos dados