Files
twenty_crm/server/src/user/user.service.ts
Charles Bochet 6c7eb53333 Add seeds and move to uuid (#80)
Co-authored-by: Charles Bochet <charles@twenty.com>
2023-04-26 16:42:01 +02:00

52 lines
1.2 KiB
TypeScript

import {
HasuraInsertEvent,
TrackedHasuraEventHandler,
} from '@golevelup/nestjs-hasura';
import { UserRepository } from './user.repository';
import { Injectable, Response } from '@nestjs/common';
import { WorkspaceRepository } from './workspace.repository';
import { v4 } from 'uuid';
interface User {
id: number;
email: string;
}
@Injectable()
export class UserService {
constructor(
private repository: UserRepository,
private workspaceRepository: WorkspaceRepository,
) {}
@TrackedHasuraEventHandler({
triggerName: 'user-created',
tableName: 'users',
schema: 'auth',
definition: { type: 'insert' },
})
async handleUserCreated(evt: HasuraInsertEvent<User>) {
const emailDomain = evt.event.data.new.email.split('@')[1];
if (!emailDomain) {
return;
}
const workspace = await this.workspaceRepository.findWorkspaceByDomainName({
where: { domain_name: emailDomain },
});
if (!workspace) {
return;
}
const workspaceMember = await this.repository.upsertWorkspaceMember({
data: {
id: v4(),
user_id: String(evt.event.data.new.id),
workspace_id: workspace.id,
},
});
}
}