Assign user to workspace on signin

This commit is contained in:
Charles Bochet
2023-04-24 14:50:48 +02:00
parent a5bfeef2d6
commit 6d2c8bbdf9
36 changed files with 547 additions and 34 deletions

View File

@ -0,0 +1,40 @@
import { HasuraInsertEvent, TrackedHasuraEventHandler } from '@golevelup/nestjs-hasura';
import { UserRepository} from "./user.repository"
import { Injectable, Response } from '@nestjs/common';
import { WorkspaceRepository } from './workspace.repository';
import { response } from 'express';
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 workspace = await this.workspaceRepository.findWorkspaceByDomainName(
{ where: { domain_name:evt.event.data.new.email.split('@')[1] }
});
console.log(workspace)
if (!workspace) {
return;
}
const workspaceMember = await this.repository.upsertWorkspaceMember({
data: {
user_id: String(evt.event.data.new.id),
workspace_id: workspace.id,
},
});
}
}