feat: user update and subscribers added

This commit is contained in:
Mir Arif Hasan
2022-12-22 17:35:44 +06:00
parent c42b6e2fdb
commit 3cc22575cb
5 changed files with 94 additions and 6 deletions

View File

@@ -0,0 +1,34 @@
import { Injectable } from '@nestjs/common';
import { PrismaService } from '../prisma/prisma.service';
import { User } from './user.model';
import * as E from 'fp-ts/lib/Either';
import { USER_NOT_FOUND } from 'src/errors';
import { UpdateUserInput } from './dtos/update-user-input.dto';
import { PubSubService } from 'src/pubsub/pubsub.service';
@Injectable()
export class UserService {
constructor(
private readonly prisma: PrismaService,
private readonly pubsub: PubSubService,
) {}
async updateUser(user: User, updateUserDto: UpdateUserInput) {
try {
const updatedUser = await this.prisma.user.update({
where: { uid: user.uid },
data: updateUserDto,
});
// Publish subscription for user updates
await this.pubsub.publish(
`user_settings/${user.uid}/updated`,
updatedUser,
);
return E.right(updatedUser);
} catch (e) {
return E.left(USER_NOT_FOUND);
}
}
}