From 6cd39ccca2ffd65edcf6295a913bd6fd767ca75f Mon Sep 17 00:00:00 2001 From: paean99 <> Date: Fri, 18 Jan 2019 22:11:16 +0000 Subject: [PATCH] single dynamic decorator --- src/modules/user/CreateUser.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/modules/user/CreateUser.ts b/src/modules/user/CreateUser.ts index f431243..a16114f 100644 --- a/src/modules/user/CreateUser.ts +++ b/src/modules/user/CreateUser.ts @@ -5,25 +5,28 @@ import { ClassType, InputType, Field, - UseMiddleware + Authorized } from "type-graphql"; import { RegisterInput } from "./register/RegisterInput"; import { User } from "../../entity/User"; import { Product } from "../../entity/Product"; -import { Middleware } from "type-graphql/interfaces/Middleware"; function createResolver( suffix: string, returnType: T, inputType: X, entity: any, - middleware?: Middleware[] + decorator: any ) { + const decoratorFactory = (deco: any): any => { + return deco(); + }; + @Resolver() class BaseResolver { @Mutation(() => returnType, { name: `create${suffix}` }) - @UseMiddleware(...(middleware || [])) - async create(@Arg("data", () => inputType) data: any) { + @decoratorFactory(decorator) + create(@Arg("data", () => inputType) data: any) { return entity.create(data).save(); } } @@ -41,11 +44,13 @@ export const CreateUserResolver = createResolver( "User", User, RegisterInput, - User + User, + Authorized ); export const CreateProductResolver = createResolver( "Product", Product, ProductInput, - Product + Product, + Authorized );