@juicyllama/nestjs-aweber
v0.12.3
Published
A NestJS app for integrating with AWeber API
Keywords
Readme
Install
npm i @juicyllama/nestjs-aweberUsage
- Create an AWeber App (or get credentials from existing app)
# .env
AWEBER_CLIENT_ID=your_aweber_client_id
AWEBER_CLIENT_SECRET=your_aweber_client_secret- Import the AWeber module into your NestJS application
Basic Usage
import { AWeberModule } from '@juicyllama/nestjs-aweber'
@Module({
imports: [
AWeberModule.forRoot(),
],
})
export class AppModule {}Direct Configuration
For applications that want to pass configuration values directly:
import { AWeberModule } from '@juicyllama/nestjs-aweber'
@Module({
imports: [
AWeberModule.forRoot({
config: {
AWEBER_CLIENT_ID: 'your-client-id',
AWEBER_CLIENT_SECRET: 'your-client-secret',
},
}),
],
})
export class AppModule {}Advanced Configuration
For applications with custom environment file paths or caching strategies:
import { AWeberModule } from '@juicyllama/nestjs-aweber'
import { ConfigModule, ConfigService } from '@nestjs/config'
@Module({
imports: [
AWeberModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: async (configService: ConfigService) => ({
configModule: {
isGlobal: true,
envFilePath: `apps/core/.env.${process.env.NODE_ENV || 'local'}`,
},
cacheModule: {
isGlobal: true,
// Custom cache configuration here
},
}),
}),
],
})
export class AppModule {}See USAGE.md for more detailed configuration examples.
Authenticate your NestJS app with Aweber (OAuth2)
Use the AWeber services in your application
You can checkout the Sandbox for an example implementation.
Oauth2
Once you have the module running in your app, it automatically exposes the endpoints required to connect via OAuth2
Visit: /app/aweber/auth and connect to your AWeber account
Cache / Redis
As standard the app will use local memory for storing the OAuth Tokens which is not best practice as you will need to reauth each time you restart the service (and the memory is cleared).
We recommend using Redis which ships out of the box, provide your redis environment values and the cache will revert to redis.
REDIS_URI=redis://localhost:6379Types
We have typed each AWeber Resource type and have exported them for your use.
You can import them into your code and reuse them.
Testing
We are using mock data (mirrored from the AWeber documentation) to perform testing.
Webhooks
This API wrapper does not support webhooks and you should integrate them directly into your application using AWeber Webhooks Docs
