feat: teamEnvironment module added
This commit is contained in:
@@ -9,6 +9,7 @@ import {
|
||||
BUG_AUTH_NO_USER_CTX,
|
||||
BUG_TEAM_NO_REQUIRE_TEAM_ROLE,
|
||||
BUG_TEAM_NO_TEAM_ID,
|
||||
TEAM_MEMBER_NOT_FOUND,
|
||||
} from 'src/errors';
|
||||
|
||||
@Injectable()
|
||||
@@ -23,24 +24,20 @@ export class GqlTeamMemberGuard implements CanActivate {
|
||||
'requiresTeamRole',
|
||||
context.getHandler(),
|
||||
);
|
||||
|
||||
if (!requireRoles) throw new Error(BUG_TEAM_NO_REQUIRE_TEAM_ROLE);
|
||||
|
||||
const gqlExecCtx = GqlExecutionContext.create(context);
|
||||
|
||||
const { user } = gqlExecCtx.getContext().req;
|
||||
|
||||
if (user == undefined) throw new Error(BUG_AUTH_NO_USER_CTX);
|
||||
|
||||
const { teamID } = gqlExecCtx.getArgs<{ teamID: string }>();
|
||||
|
||||
if (!teamID) throw new Error(BUG_TEAM_NO_TEAM_ID);
|
||||
|
||||
const status = await this.teamService.getTeamMember(teamID, user.uid);
|
||||
const teamMember = await this.teamService.getTeamMember(teamID, user.uid);
|
||||
if (!teamMember) throw new Error(TEAM_MEMBER_NOT_FOUND);
|
||||
|
||||
if (!status) throw new Error('team/member_not_found');
|
||||
|
||||
if (requireRoles.includes(status.role)) return true;
|
||||
if (requireRoles.includes(teamMember.role)) return true;
|
||||
|
||||
throw new Error(TEAM_NOT_REQUIRED_ROLE);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ export class Team {
|
||||
@ObjectType()
|
||||
export class TeamMember {
|
||||
@Field(() => ID, {
|
||||
description: 'Membership ID of the Team Member'
|
||||
description: 'Membership ID of the Team Member',
|
||||
})
|
||||
membershipID: string;
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import { PrismaModule } from '../prisma/prisma.module';
|
||||
import { PubSubModule } from '../pubsub/pubsub.module';
|
||||
|
||||
@Module({
|
||||
imports: [UserModule ,PubSubModule , PrismaModule ],
|
||||
imports: [UserModule, PubSubModule, PrismaModule],
|
||||
providers: [
|
||||
TeamService,
|
||||
TeamResolver,
|
||||
|
||||
@@ -66,7 +66,7 @@ export class TeamService implements UserDataHandler, OnModuleInit {
|
||||
role: TeamMemberRole,
|
||||
): Promise<E.Left<string> | E.Right<TeamMember>> {
|
||||
const user = await this.userService.findUserByEmail(email);
|
||||
if(O.isNone(user)) return E.left(USER_NOT_FOUND);
|
||||
if (O.isNone(user)) return E.left(USER_NOT_FOUND);
|
||||
|
||||
const teamMember = await this.addMemberToTeam(teamID, user.value.uid, role);
|
||||
return E.right(teamMember);
|
||||
|
||||
Reference in New Issue
Block a user