From a173d2c808ba5d1b0190209a2271b0dbe47c24aa Mon Sep 17 00:00:00 2001 From: ankitsridhar16 Date: Wed, 7 Dec 2022 23:11:52 +0530 Subject: [PATCH] chore: imported existing user module files from old repo --- packages/hoppscotch-backend/src/app.module.ts | 9 ++- .../src/user/user.module.ts | 10 ++++ .../src/user/user.resolver.ts | 57 +++++++++++++++++++ 3 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 packages/hoppscotch-backend/src/user/user.module.ts create mode 100644 packages/hoppscotch-backend/src/user/user.resolver.ts diff --git a/packages/hoppscotch-backend/src/app.module.ts b/packages/hoppscotch-backend/src/app.module.ts index 6c3f39d9f..7614320b9 100644 --- a/packages/hoppscotch-backend/src/app.module.ts +++ b/packages/hoppscotch-backend/src/app.module.ts @@ -1,9 +1,8 @@ import { Module } from '@nestjs/common'; -import { AppController } from './app.controller'; -import { AppService } from './app.service'; import { GraphQLModule } from '@nestjs/graphql'; import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo'; -import { AppResolver } from './app.resolver'; +import { UserModule } from './user/user.module'; +import { GQLComplexityPlugin } from './plugins/GQLComplexityPlugin'; @Module({ imports: [ @@ -44,8 +43,8 @@ import { AppResolver } from './app.resolver'; }, driver: ApolloDriver, }), + UserModule, ], - controllers: [AppController], - providers: [AppService, AppResolver], + providers: [GQLComplexityPlugin], }) export class AppModule {} diff --git a/packages/hoppscotch-backend/src/user/user.module.ts b/packages/hoppscotch-backend/src/user/user.module.ts new file mode 100644 index 000000000..3681faad5 --- /dev/null +++ b/packages/hoppscotch-backend/src/user/user.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { UserResolver } from './user.resolver'; +import { PubSubModule } from 'src/pubsub/pubsub.module'; + +@Module({ + imports: [PubSubModule], + providers: [UserResolver], + exports: [], +}) +export class UserModule {} diff --git a/packages/hoppscotch-backend/src/user/user.resolver.ts b/packages/hoppscotch-backend/src/user/user.resolver.ts new file mode 100644 index 000000000..cdbd63f31 --- /dev/null +++ b/packages/hoppscotch-backend/src/user/user.resolver.ts @@ -0,0 +1,57 @@ +import { Resolver, Query } from '@nestjs/graphql'; +import { User } from './user.model'; +import { UseGuards } from '@nestjs/common'; +import { GqlAuthGuard } from '../guards/gql-auth.guard'; +import { GqlUser } from '../decorators/gql-user.decorator'; + +@Resolver(() => User) +export class UserResolver { + // eslint-disable-next-line @typescript-eslint/no-empty-function + constructor() {} + + // Query + // @Query(() => User, { + // nullable: true, + // description: 'Finds a user by their UID or null if no match', + // deprecationReason: + // 'Deprecated due to privacy concerns. Try to get the user from the context-relevant queries', + // }) + // async user(@Args({ name: 'uid', type: () => ID }) uid: string): Promise { + // return this.userService.getUserForUID(uid); + // } + + @Query(() => User, { + description: + "Gives details of the user executing this query (pass Authorization 'Bearer' header)", + }) + @UseGuards(GqlAuthGuard) + me(@GqlUser() user: User): User { + return user; + } + + // // Mutation + // @Mutation(() => Boolean, { + // description: 'Delete an user account', + // }) + // @UseGuards(GqlAuthGuard) + // deleteUser( + // @GqlUser() user:User + // ): Promise { + // return pipe( + // this.userService.deleteUserByUID(user), + // TE.map(() => true), + // TE.mapLeft((message) => message.toString()), + // TE.getOrElse(throwErr) + // )(); + // } + // + // // Subscription + // @Subscription(() => User, { + // description: 'Listen for user deletion', + // resolve: (value) => value, + // }) + // @UseGuards(GqlAuthGuard) + // userDeleted(@GqlUser() user: User): AsyncIterator { + // return this.pubsub.asyncIterator(`user/${user.uid}/deleted`); + // } +}