Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | 11x 10x 1x 1x 1x 1x 1x 3x 3x 3x 1x 10x 9x 9x 1x 9x 9x 9x 9x | import { Inject, PipeTransform } from '@nestjs/common'; import { Args, Query, Resolver } from '@nestjs/graphql'; import { Ctx, EventBus, RequestContext } from '@vendure/core'; import { validate as isEmail } from 'isemail'; import { SIMPLE_AUTH_PLUGIN_OPTIONS } from './constants'; import { OneTimeCodeRequestedEvent } from './events'; import { ISimpleAuthPluginOptions } from './interfaces'; import { SimpleAuthService } from './simple-auth.service'; class EmailValidation implements PipeTransform<string,string> { transform(value: string): string { if (isEmail(value)) { return value.toLowerCase() } throw new Error(`${value} is not a valid email`); } } export class RequestOneTimeCodeError { readonly __typename = 'RequestOneTimeCodeError'; constructor(private message: string, private errorCode: string) { console.log('runhere'); } } @Resolver() export class SimpleAuthResolver { constructor( @Inject(SimpleAuthService) private service: SimpleAuthService, @Inject(EventBus) private eventBus: EventBus, @Inject(SIMPLE_AUTH_PLUGIN_OPTIONS) private pluginOptions: ISimpleAuthPluginOptions) { } @Query() async requestOneTimeCode(@Ctx() ctx: RequestContext, @Args('email', EmailValidation) email: string) { if (this.pluginOptions.preventCrossStrategies) { const foundStrategy = await this.service.checkCrossStrategies(ctx, email); if (foundStrategy) return new RequestOneTimeCodeError( `Email already used with "${foundStrategy}" authentication`, 'CROSS_EMAIL_AUTHENTICATION') } const value = await this.service.generateCode(email); const fiteredValue = this.pluginOptions.isDev ? value : 'A code sent to your email'; this.eventBus.publish(new OneTimeCodeRequestedEvent(value, email, ctx)); return { __typename: 'OneTimeCode', value: fiteredValue }; } } |