0.1.1 • Published 1 month ago

@candioto/nestjs-asaas v0.1.1

Weekly downloads
-
License
ISC
Repository
github
Last release
1 month ago

npm version ISC license

Unofficial Asaas Payment Gateway NestJS module

❗Module and documentation under development.

A simple NestJS module that uses Eduardo Bernardo's sdk behind the scenes. It makes easier to setup and integrate Asaas to a NestJS application.

Instalation

npm install --save @candioto/nestjs-asaas

Getting Started

To setup the module with your credentials, import the module into app.module.ts:

import { Module } from '@nestjs-common';
import { AsaasModule } from '@candioto/nestjs-asaas';

@Module({
  imports: [
    AsaasModule.forRoot({
      apiKey: 'my_api_key',
      sandbox: false,
    }),
  ],
})
export class AppModule {}

Or your can use the async way:

import { Module } from '@nestjs-common';
import { AsaasModule } from '@candioto/nestjs-asaas';
import { ConfigModule, ConfigService } from '@nestjs/nestjs-config';

@Module({
  imports: [
    AsaasModule.forRootAsync({
      imports: [ConfigModule],
      useFactory: async (config: ConfigService) => ({
        apiKey: config.get('ASAAS_API_KEY'),
        sandbox: config.get('ASAAS_SANDBOX'),
      }),
      inject: [ConfigService],
    })
  ]
})
export class AppModule {}

To use into your code, just inject the Asaas Client using the custom decorator:

import { Injectable } from '@nestjs/common';
import { InjectAsaas, AsaasService } from '@candioto/nestjs-asaas';

@Injectable()
export class AppService {
  public constructor(@InjectAsaas() private readonly asaas: AsaasService) {}
}

Now, you can use all the Asaas client just like in Eduardo Bernardo's sdk. For example:

import { Injectable } from '@nestjs/common';
import { InjectAsaas, AsaasService } from '@candioto/nestjs-asaas';

@Injectable()
export class AppService {
  public constructor(@InjectAsaas() private readonly asaas: AsaasService) {}

  async createCustomer(customerData: any) {
    // Your logic here
    await this.asaas.customers.new(customerData);
    // Your logic continues here
  }

  async pay(paymentData: any) {
    // Your logic here
    await this.asaas.payments.create(paymentData);
    // Your logic continues here
  }
}

See the sdk docs and Asaas official documentation to learn more about the integration

Author

Contributing

I would greatly appreciate any contributions to make this project better. Please make sure to follow the below guidelines before getting your hands dirty.

  1. Fork the repository
  2. Create your branch (git checkout -b my-branch)
  3. Commit any changes to your branch
  4. Push your changes to your remote branch
  5. Open a pull request

License

Distributed under the MIT License. See LICENSE for more information. -->

Acknowledgements

0.1.1

1 month ago

0.1.0

2 months ago