auth-service/src/modules/account/account.service.ts
2026-02-08 10:54:33 +03:00

40 lines
1.0 KiB
TypeScript

import { Injectable } from '@nestjs/common'
import { RpcException } from '@nestjs/microservices'
import { Role } from '@prisma/generated/enums'
import { convertEnum, RpcStatus } from '@teacinema/common'
import type {
GetAccountRequest,
GetAccountResponse
} from '@teacinema/contracts/gen/account'
import { AccountRepository } from './account.repository'
@Injectable()
export class AccountService {
public constructor(private readonly accountRepository: AccountRepository) {}
public async getAccount(
data: GetAccountRequest
): Promise<GetAccountResponse> {
const { id } = data
const account = await this.accountRepository.findById(id)
if (!account) {
throw new RpcException({
code: RpcStatus.NOT_FOUND,
details: 'Account not found'
})
}
return {
email: account.email,
id: account.id,
phone: account.phone,
isEmailVerified: account.isEmailVerified,
isPhoneVerified: account.isPhoneVerified,
// @ts-ignore
role: convertEnum(Role, account.role)
}
}
}