mirror of
https://github.com/SyncrowIOT/backend.git
synced 2026-10-25 15:07:54 +00:00
Remove invitationCode from unique constraint and update invite user logic
This commit is contained in:
@@ -18,7 +18,10 @@ import { PermissionType } from '@app/common/constants/permission-type.enum';
|
||||
import { InviteSpaceEntity } from '@app/common/modules/space/entities/invite-space.entity';
|
||||
import { UserService } from './user.service';
|
||||
import { RoleType } from '@app/common/constants/role.type.enum';
|
||||
import { InviteUserRepository } from '@app/common/modules/Invite-user/repositiories';
|
||||
import {
|
||||
InviteUserRepository,
|
||||
InviteUserSpaceRepository,
|
||||
} from '@app/common/modules/Invite-user/repositiories';
|
||||
import { UserStatusEnum } from '@app/common/constants/user-status.enum';
|
||||
|
||||
@Injectable()
|
||||
@@ -29,6 +32,7 @@ export class UserSpaceService {
|
||||
private readonly inviteSpaceRepository: InviteSpaceRepository,
|
||||
private readonly userService: UserService,
|
||||
private readonly inviteUserRepository: InviteUserRepository,
|
||||
private readonly inviteUserSpaceRepository: InviteUserSpaceRepository,
|
||||
private readonly userDevicePermissionService: UserDevicePermissionService,
|
||||
) {}
|
||||
|
||||
@@ -141,23 +145,36 @@ export class UserSpaceService {
|
||||
) {
|
||||
try {
|
||||
const space = await this.getProjectBySpaceUuid(spaceUuid);
|
||||
|
||||
const inviteUser = this.inviteUserRepository.create({
|
||||
firstName: user.firstName,
|
||||
lastName: user.lastName,
|
||||
email: user.email,
|
||||
jobTitle: null,
|
||||
phoneNumber: null,
|
||||
roleType: { uuid: user.role.uuid },
|
||||
status: UserStatusEnum.ACTIVE,
|
||||
invitationCode: inviteCode,
|
||||
invitedBy: RoleType.SPACE_OWNER,
|
||||
project: { uuid: space.community.project.uuid },
|
||||
const invitedUserData = await this.inviteUserRepository.findOne({
|
||||
where: {
|
||||
email: user.email,
|
||||
project: { uuid: space.community.project.uuid },
|
||||
},
|
||||
});
|
||||
await this.inviteUserRepository.save(inviteUser);
|
||||
if (!invitedUserData) {
|
||||
const inviteUser = this.inviteUserRepository.create({
|
||||
firstName: user.firstName,
|
||||
lastName: user.lastName,
|
||||
email: user.email,
|
||||
jobTitle: null,
|
||||
phoneNumber: null,
|
||||
roleType: { uuid: user.role.uuid },
|
||||
status: UserStatusEnum.ACTIVE,
|
||||
invitationCode: inviteCode,
|
||||
invitedBy: RoleType.SPACE_OWNER,
|
||||
project: { uuid: space.community.project.uuid },
|
||||
});
|
||||
const invitedUser = await this.inviteUserRepository.save(inviteUser);
|
||||
const inviteUserSpace = this.inviteUserSpaceRepository.create({
|
||||
inviteUser: { uuid: invitedUser.uuid },
|
||||
space: { uuid: spaceUuid },
|
||||
});
|
||||
|
||||
await this.inviteUserSpaceRepository.save(inviteUserSpace);
|
||||
}
|
||||
} catch (err) {
|
||||
throw new HttpException(
|
||||
err.message || 'Internal Server Error',
|
||||
err.message || 'Failed to add user as an active invitation.',
|
||||
HttpStatus.INTERNAL_SERVER_ERROR,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,10 @@ import {
|
||||
import { UserDevicePermissionService } from 'src/user-device-permission/services';
|
||||
import { DeviceUserPermissionRepository } from '@app/common/modules/device/repositories';
|
||||
import { PermissionTypeRepository } from '@app/common/modules/permission/repositories';
|
||||
import { InviteUserRepository } from '@app/common/modules/Invite-user/repositiories';
|
||||
import {
|
||||
InviteUserRepository,
|
||||
InviteUserSpaceRepository,
|
||||
} from '@app/common/modules/Invite-user/repositiories';
|
||||
|
||||
@Module({
|
||||
imports: [ConfigModule, CommunityModule],
|
||||
@@ -38,6 +41,7 @@ import { InviteUserRepository } from '@app/common/modules/Invite-user/repositior
|
||||
UserSpaceService,
|
||||
InviteSpaceRepository,
|
||||
InviteUserRepository,
|
||||
InviteUserSpaceRepository,
|
||||
],
|
||||
exports: [UserService],
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user