0.3.5 • Published 1 year ago

nestjs-juno-provider v0.3.5

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Logo

Install

$ npm install nestjs-juno --save

Como usar

Uso Basico

import { Module } from '@nestjs/common';
import { JunoModule } from 'nestjs-juno';

@Module({
  imports: [
    JunoModule.forRoot({
        endpoint: '',
        clientId: '',
        clientSecret: '',
        privateToken: '',
    }),
  ],
})
export default class AppModule {}

Em um subModule

import { Module } from '@nestjs/common';
import { JunoModule } from 'nestjs-juno';

@Module({
  imports: [
    JunoModule.forFeature(),
  ],
})
export default class SubModule {}

Usando com o load das configuracoes de forma async

import { Module } from '@nestjs/common';
import { JunoModule } from 'nestjs-juno';
import { ConfigModule, ConfigService } from 'nestjs-config';

@Module({
  imports: [
    ConfigModule.load('root/to/config/*/**.{ts,js}'),
    JunoModule.forRootAsync({
      useFactory: async (config: ConfigService) => config.get('juno'),
      inject: [ConfigService],
    }),
  ],
})
export default class AppModule {}

//config/juno.ts
export default {
        endpoint: process.env.JUNO_ENDPOINT,
        clientId: process.env.JUNO_CLIENT_ID,
        clientSecret: process.env.JUNO_CLIENT_SECRET,
        privateToken: process.env.JUNO_PRIVATE_TOKEN,
};

JunoProvider

Como injetar em outra classse o JunoProvider

@Injectable()
class TestService {
    constructor(
        @InjectJunoProvider()
        private readonly junoProvider: JunoProvider,
    ) {}
}

@InjectJunoProvider() private readonly junoProvider: JunoProvider,

JunoClient

É o cliente responsável por fazer as requisições para a juno, você não precisa se preocupar com a autenticação.

@Injectable()
class TestService {
    constructor(public junoClientService: JunoClientService) {}
    requestExample() {
        return this.junoClientService.http.get('restantedourl');
    }
}

Webhooks

Você pode utilizar seus webhooks, que serão por default apontados para juno/webhook.

@JunoWebhookHandler()
    class SubscriptionProvider {
      count = 0;
      @JunoWebhookEventDigitalAccountStatusChanged()
      junoWebhookEventDigitalAccountStatusChanged() {
        this.count++;
      }
    }

Eventos implementados no Webhook

NomeTag JunoNestJS decorator
JUNO_WEBHOOK_EVENT_DIGITAL_ACCOUNT_STATUS_CHANGEDDIGITAL_ACCOUNT_STATUS_CHANGEDJunoWebhookEventDigitalAccountStatusChanged
JUNO_WEBHOOK_EVENT_DIGITAL_ACCOUNT_CREATEDDIGITAL_ACCOUNT_CREATEDJunoWebhookEventDigitalAccountCreated
JUNO_WEBHOOK_EVENT_DOCUMENT_STATUS_CHANGEDDOCUMENT_STATUS_CHANGEDJunoWebhookEventDocumentStatusChanged
JUNO_WEBHOOK_EVENT_TRANSFER_STATUS_CHANGEDTRANSFER_STATUS_CHANGEDJunoWebhookEventTransferStatusChanged
JUNO_WEBHOOK_EVENT_P2P_TRANSFER_STATUS_CHANGEDP2P_TRANSFER_STATUS_CHANGEDJunoWebhookEventP2PTransferStatusChanged
JUNO_WEBHOOK_EVENT_CHARGE_STATUS_CHANGEDCHARGE_STATUS_CHANGEDJunoWebhookEventChargeStatusChanged
JUNO_WEBHOOK_EVENT_CHARGE_READ_CONFIRMATIONCHARGE_READ_CONFIRMATIONJunoWebhookEventChargeReadConfirmation
JUNO_WEBHOOK_EVENT_PAYMENT_NOTIFICATIONPAYMENT_NOTIFICATIONJunoWebhookEventPaymentNotification