Email verification frontend.
This commit is contained in:
@@ -5,7 +5,7 @@ import { ConfigModule } from '@nestjs/config';
|
||||
import { GraphQLISODateTime, GraphQLModule } from '@nestjs/graphql';
|
||||
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo';
|
||||
import { ApolloServerPluginLandingPageLocalDefault } from 'apollo-server-core';
|
||||
import { UsersModule } from './users/users.module';
|
||||
// import { UsersModule } from './users/users.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@@ -29,7 +29,7 @@ import { UsersModule } from './users/users.module';
|
||||
resolvers: { DateTime: GraphQLISODateTime },
|
||||
plugins: [ApolloServerPluginLandingPageLocalDefault()],
|
||||
}),
|
||||
UsersModule,
|
||||
// UsersModule,
|
||||
],
|
||||
controllers: [AppController],
|
||||
providers: [],
|
||||
|
||||
@@ -46,15 +46,32 @@ export class SupertokensService {
|
||||
}),
|
||||
],
|
||||
}),
|
||||
Session
|
||||
.init
|
||||
// {
|
||||
// jwt: {
|
||||
// enable: true,
|
||||
// issuer: `${process.env.APP_URL}/auth/api`,
|
||||
// },
|
||||
// }
|
||||
(),
|
||||
Session.init({
|
||||
// antiCsrf: "VIA_CUSTOM_HEADER",
|
||||
jwt: {
|
||||
enable: true,
|
||||
issuer: `${process.env.APP_URL}/auth/api`,
|
||||
},
|
||||
override: {
|
||||
functions: function (originalImplementation) {
|
||||
return {
|
||||
...originalImplementation,
|
||||
createNewSession: async function (input) {
|
||||
input.accessTokenPayload = {
|
||||
...input.accessTokenPayload,
|
||||
'https://hasura.io/jwt/claims': {
|
||||
'x-hasura-user-id': input.userId,
|
||||
'x-hasura-default-role': 'user',
|
||||
'x-hasura-allowed-roles': ['user'],
|
||||
},
|
||||
};
|
||||
|
||||
return originalImplementation.createNewSession(input);
|
||||
},
|
||||
};
|
||||
},
|
||||
},
|
||||
}),
|
||||
],
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2,18 +2,18 @@ import { NestFactory } from '@nestjs/core';
|
||||
import { AppModule } from './app.module';
|
||||
import supertokens from 'supertokens-node';
|
||||
import { SupertokensExceptionFilter } from './auth/filters/auth.filter';
|
||||
import { PrismaService } from 'prisma/prisma.service';
|
||||
// import { PrismaService } from 'prisma/prisma.service';
|
||||
|
||||
async function bootstrap() {
|
||||
const app = await NestFactory.create(AppModule);
|
||||
app.enableCors({
|
||||
origin: [process.env.WEBAPP_URL, 'https://studio.apollographql.com'],
|
||||
origin: [process.env.WEBAPP_URL, 'http://server.home:8081'],
|
||||
allowedHeaders: ['content-type', ...supertokens.getAllCORSHeaders()],
|
||||
credentials: true,
|
||||
});
|
||||
app.useGlobalFilters(new SupertokensExceptionFilter());
|
||||
const prismaService = app.get(PrismaService);
|
||||
await prismaService.enableShutdownHooks(app);
|
||||
// const prismaService = app.get(PrismaService);
|
||||
// await prismaService.enableShutdownHooks(app);
|
||||
|
||||
await app.listen(process.env.APP_PORT);
|
||||
}
|
||||
|
||||
@@ -6,19 +6,19 @@ import { UsersService } from './users.service';
|
||||
export class UsersResolver {
|
||||
constructor(private readonly usersService: UsersService) {}
|
||||
|
||||
@Mutation('createUser')
|
||||
create(@Args('createUserInput') createUserInput: Prisma.UserCreateInput) {
|
||||
return this.usersService.create(createUserInput);
|
||||
}
|
||||
@Query('users')
|
||||
findAll(@Args('params') params?: Prisma.UserFindManyArgs) {
|
||||
return this.usersService.users(params);
|
||||
}
|
||||
// @Mutation('createUser')
|
||||
// create(@Args('createUserInput') createUserInput: Prisma.UserCreateInput) {
|
||||
// return this.usersService.create(createUserInput);
|
||||
// }
|
||||
// @Query('users')
|
||||
// findAll(@Args('params') params?: Prisma.UserFindManyArgs) {
|
||||
// return this.usersService.users(params);
|
||||
// }
|
||||
|
||||
@Query('user')
|
||||
findOne(@Args('id') id: string) {
|
||||
return this.usersService.user({ id });
|
||||
}
|
||||
// @Query('user')
|
||||
// findOne(@Args('id') id: string) {
|
||||
// return this.usersService.user({ id });
|
||||
// }
|
||||
|
||||
// @Mutation('updateUser')
|
||||
// update(@Args('updateUserInput') updateUserInput: UpdateUserInput) {
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { Prisma, User } from '@prisma/client';
|
||||
// import { Prisma, User } from '@prisma/client';
|
||||
import { PrismaService } from 'prisma/prisma.service';
|
||||
|
||||
@Injectable()
|
||||
export class UsersService {
|
||||
constructor(private readonly prismaService: PrismaService) {}
|
||||
|
||||
async user(uniqueInput: Prisma.UserWhereUniqueInput) {
|
||||
return await this.prismaService.user.findUnique({ where: uniqueInput });
|
||||
}
|
||||
// async user(uniqueInput: Prisma.UserWhereUniqueInput) {
|
||||
// return await this.prismaService.user.findUnique({ where: uniqueInput });
|
||||
// }
|
||||
|
||||
async users(params?: Prisma.UserFindManyArgs) {
|
||||
return await this.prismaService.user.findMany(params);
|
||||
}
|
||||
// async users(params?: Prisma.UserFindManyArgs) {
|
||||
// return await this.prismaService.user.findMany(params);
|
||||
// }
|
||||
|
||||
create(createUserInput: Prisma.UserCreateInput) {
|
||||
return this.prismaService.user.create({ data: createUserInput });
|
||||
}
|
||||
// create(createUserInput: Prisma.UserCreateInput) {
|
||||
// return this.prismaService.user.create({ data: createUserInput });
|
||||
// }
|
||||
|
||||
update(id: string, userUpdateInput: Prisma.UserUpdateInput) {
|
||||
return this.prismaService.user.update({
|
||||
where: { id },
|
||||
data: userUpdateInput,
|
||||
});
|
||||
}
|
||||
// update(id: string, userUpdateInput: Prisma.UserUpdateInput) {
|
||||
// return this.prismaService.user.update({
|
||||
// where: { id },
|
||||
// data: userUpdateInput,
|
||||
// });
|
||||
// }
|
||||
|
||||
// remove(id: string) {
|
||||
// return `This action removes a #${id} user`;
|
||||
|
||||
Reference in New Issue
Block a user