push code len ne

This commit is contained in:
2024-10-28 20:56:21 +07:00
parent 5c1d4e92af
commit ae1aa64b41
7 changed files with 267 additions and 23 deletions

View File

@@ -96,7 +96,7 @@ export class CenterSchema extends PothosSchema {
'Retrieve a list of centers with optional filtering, ordering, and pagination.',
type: [this.center()],
args: this.builder.generator.findManyArgs('Center'),
resolve: async (query, root, args, ctx, info) => {
resolve: async (query, root, args) => {
return await this.prisma.center.findMany({
...query,
skip: args.skip ?? undefined,
@@ -110,7 +110,7 @@ export class CenterSchema extends PothosSchema {
type: this.center(),
description: 'Retrieve a single center by its unique identifier.',
args: this.builder.generator.findUniqueArgs('Center'),
resolve: async (query, root, args, ctx, info) => {
resolve: async (query, root, args) => {
return await this.prisma.center.findUnique({
...query,
where: args.where,
@@ -124,7 +124,7 @@ export class CenterSchema extends PothosSchema {
args: {
userId: t.arg({ type: 'String', required: true }),
},
resolve: async (query, root, args, ctx, info) => {
resolve: async (query, root, args) => {
return await this.prisma.center.findFirst({
where: {
centerMentors: {
@@ -149,7 +149,7 @@ export class CenterSchema extends PothosSchema {
required: true,
}),
},
resolve: async (query, root, args, ctx, info) => {
resolve: async (query, root, args) => {
return await this.prisma.center.create({
...query,
data: args.input,
@@ -169,7 +169,7 @@ export class CenterSchema extends PothosSchema {
required: true,
}),
},
resolve: async (query, root, args, ctx, info) => {
resolve: async (query, root, args) => {
return await this.prisma.center.update({
...query,
where: args.where,
@@ -186,7 +186,7 @@ export class CenterSchema extends PothosSchema {
required: true,
}),
},
resolve: async (query, root, args, ctx, info) => {
resolve: async (query, root, args) => {
return await this.prisma.center.delete({
...query,
where: args.where,
@@ -205,8 +205,12 @@ export class CenterSchema extends PothosSchema {
type: 'Boolean',
required: true,
}),
adminNote: t.arg({
type: 'String',
required: false,
}),
},
resolve: async (query, root, args, ctx, info) => {
resolve: async (query, root, args) => {
return await this.prisma.$transaction(async (prisma) => {
const center = await prisma.center.findUnique({
...query,
@@ -254,17 +258,36 @@ export class CenterSchema extends PothosSchema {
: CenterStatus.REJECTED,
},
});
// mail to center owner
try {
await this.mailService.sendEmail(
centerOwner.email,
args.approve
? 'Your center has been approved'
: 'Your center has been rejected',
args.approve ? 'center-approved' : 'center-rejected',
);
} catch (error) {
Logger.error(error, 'CenterSchema');
// mail to center owner if approved
if (args.approve) {
try {
await this.mailService.sendTemplateEmail(
centerOwner.email,
'Thông báo phê duyệt đăng ký trung tâm',
'CenterApproved',
{
CENTER_NAME: center.name,
},
);
} catch (error) {
Logger.error(error, 'CenterSchema');
}
}
if (!args.approve) {
// mail to center owner if rejected
try {
await this.mailService.sendTemplateEmail(
centerOwner.email,
'Thông báo từ chối đăng ký trung tâm',
'CenterRejected',
{
CENTER_NAME: center.name,
ADMIN_NOTE: args.adminNote,
},
);
} catch (error) {
Logger.error(error, 'CenterSchema');
}
}
return updatedCenter;
});