@perly/nestjs
v0.0.11
Published
NestJS SDK integration
Readme
Installation
yarn add @perly/nestjs @nestjs/common @nestjs/core rxjsUsage
Inside app.module.ts
import { Module } from '@nestjs/common';
import { PerlyModule, PerlyUserResolver } from '@perly/nestjs';
//... other imports
@Module({
imports: [
PerlyModule.forRoot({
apiKey: process.env.PERLY_API_KEY, //or which other way to import your env
}),
// ... other imports
],
controllers: [/* ...controllers*/],
providers: [
{ provide: PerlyUserResolver, useClass: AppPerlyUserResolver },
// ... other providers
],
})
export class AppModule {}Create a new file called perly.service.ts
import { Injectable } from '@nestjs/common';
import { PerlyBuilder, PerlyUser, PerlyUserResolver } from '@perly/nestjs';
import { UserService } from './user.service';
@Injectable()
export class AppPerlyUserResolver implements PerlyUserResolver {
constructor(private readonly usersService: UserService) { //or which other services need to get the userId from request
}
async resolve(req: Request): Promise<PerlyUser | null> {
if (!req.url) return null;
const userId = await this.usersService.findById(req.headers['user-id']);
const user = await new PerlyBuilder()
.setId(userId)
.setMetadata({ plan: user.plan, region: user.region })
.linkStripeById(user.stripeId)
.linkHubspotById(user.hubspotId)
.build();
return user;
}
}
