mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-11-26 12:14:54 +00:00
Add User UUID to Temporary Passwords and Save to Repository
This commit is contained in:
@ -7,6 +7,7 @@ import {
|
|||||||
HttpStatus,
|
HttpStatus,
|
||||||
UseGuards,
|
UseGuards,
|
||||||
Get,
|
Get,
|
||||||
|
Req,
|
||||||
} from '@nestjs/common';
|
} from '@nestjs/common';
|
||||||
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
|
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
|
||||||
import {
|
import {
|
||||||
@ -31,11 +32,14 @@ export class VisitorPasswordController {
|
|||||||
@Post('temporary-password/online/multiple-time')
|
@Post('temporary-password/online/multiple-time')
|
||||||
async addOnlineTemporaryPasswordMultipleTime(
|
async addOnlineTemporaryPasswordMultipleTime(
|
||||||
@Body() addDoorLockOnlineMultipleDto: AddDoorLockOnlineMultipleDto,
|
@Body() addDoorLockOnlineMultipleDto: AddDoorLockOnlineMultipleDto,
|
||||||
|
@Req() req: any,
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
|
const userUuid = req.user.uuid;
|
||||||
const temporaryPasswords =
|
const temporaryPasswords =
|
||||||
await this.visitorPasswordService.addOnlineTemporaryPasswordMultipleTime(
|
await this.visitorPasswordService.addOnlineTemporaryPasswordMultipleTime(
|
||||||
addDoorLockOnlineMultipleDto,
|
addDoorLockOnlineMultipleDto,
|
||||||
|
userUuid,
|
||||||
);
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -54,11 +58,14 @@ export class VisitorPasswordController {
|
|||||||
@Post('temporary-password/online/one-time')
|
@Post('temporary-password/online/one-time')
|
||||||
async addOnlineTemporaryPassword(
|
async addOnlineTemporaryPassword(
|
||||||
@Body() addDoorLockOnlineOneTimeDto: AddDoorLockOnlineOneTimeDto,
|
@Body() addDoorLockOnlineOneTimeDto: AddDoorLockOnlineOneTimeDto,
|
||||||
|
@Req() req: any,
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
|
const userUuid = req.user.uuid;
|
||||||
const temporaryPasswords =
|
const temporaryPasswords =
|
||||||
await this.visitorPasswordService.addOnlineTemporaryPasswordOneTime(
|
await this.visitorPasswordService.addOnlineTemporaryPasswordOneTime(
|
||||||
addDoorLockOnlineOneTimeDto,
|
addDoorLockOnlineOneTimeDto,
|
||||||
|
userUuid,
|
||||||
);
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -77,11 +84,14 @@ export class VisitorPasswordController {
|
|||||||
@Post('temporary-password/offline/one-time')
|
@Post('temporary-password/offline/one-time')
|
||||||
async addOfflineOneTimeTemporaryPassword(
|
async addOfflineOneTimeTemporaryPassword(
|
||||||
@Body() addDoorLockOfflineOneTimeDto: AddDoorLockOfflineOneTimeDto,
|
@Body() addDoorLockOfflineOneTimeDto: AddDoorLockOfflineOneTimeDto,
|
||||||
|
@Req() req: any,
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
|
const userUuid = req.user.uuid;
|
||||||
const temporaryPassword =
|
const temporaryPassword =
|
||||||
await this.visitorPasswordService.addOfflineOneTimeTemporaryPassword(
|
await this.visitorPasswordService.addOfflineOneTimeTemporaryPassword(
|
||||||
addDoorLockOfflineOneTimeDto,
|
addDoorLockOfflineOneTimeDto,
|
||||||
|
userUuid,
|
||||||
);
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -101,11 +111,14 @@ export class VisitorPasswordController {
|
|||||||
async addOfflineMultipleTimeTemporaryPassword(
|
async addOfflineMultipleTimeTemporaryPassword(
|
||||||
@Body()
|
@Body()
|
||||||
addDoorLockOfflineMultipleDto: AddDoorLockOfflineMultipleDto,
|
addDoorLockOfflineMultipleDto: AddDoorLockOfflineMultipleDto,
|
||||||
|
@Req() req: any,
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
|
const userUuid = req.user.uuid;
|
||||||
const temporaryPassword =
|
const temporaryPassword =
|
||||||
await this.visitorPasswordService.addOfflineMultipleTimeTemporaryPassword(
|
await this.visitorPasswordService.addOfflineMultipleTimeTemporaryPassword(
|
||||||
addDoorLockOfflineMultipleDto,
|
addDoorLockOfflineMultipleDto,
|
||||||
|
userUuid,
|
||||||
);
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
import { VisitorPasswordRepository } from './../../../libs/common/src/modules/visitor-password/repositories/visitor-password.repository';
|
||||||
import { Injectable, HttpException, HttpStatus } from '@nestjs/common';
|
import { Injectable, HttpException, HttpStatus } from '@nestjs/common';
|
||||||
import { TuyaContext } from '@tuya/tuya-connector-nodejs';
|
import { TuyaContext } from '@tuya/tuya-connector-nodejs';
|
||||||
import { ConfigService } from '@nestjs/config';
|
import { ConfigService } from '@nestjs/config';
|
||||||
@ -26,6 +27,7 @@ export class VisitorPasswordService {
|
|||||||
constructor(
|
constructor(
|
||||||
private readonly configService: ConfigService,
|
private readonly configService: ConfigService,
|
||||||
private readonly deviceRepository: DeviceRepository,
|
private readonly deviceRepository: DeviceRepository,
|
||||||
|
private readonly visitorPasswordRepository: VisitorPasswordRepository,
|
||||||
private readonly emailService: EmailService,
|
private readonly emailService: EmailService,
|
||||||
private readonly doorLockService: DoorLockService,
|
private readonly doorLockService: DoorLockService,
|
||||||
private readonly deviceService: DeviceService,
|
private readonly deviceService: DeviceService,
|
||||||
@ -43,6 +45,7 @@ export class VisitorPasswordService {
|
|||||||
|
|
||||||
async addOfflineMultipleTimeTemporaryPassword(
|
async addOfflineMultipleTimeTemporaryPassword(
|
||||||
addDoorLockOfflineMultipleDto: AddDoorLockOfflineMultipleDto,
|
addDoorLockOfflineMultipleDto: AddDoorLockOfflineMultipleDto,
|
||||||
|
userUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
const deviceResults = await Promise.allSettled(
|
const deviceResults = await Promise.allSettled(
|
||||||
@ -87,7 +90,14 @@ export class VisitorPasswordService {
|
|||||||
emailBody,
|
emailBody,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if (createMultipleOfflinePass.result.offline_temp_password_id) {
|
||||||
|
await this.visitorPasswordRepository.save({
|
||||||
|
passwordTuyaUuid: `${createMultipleOfflinePass.result.offline_temp_password_id}`,
|
||||||
|
user: {
|
||||||
|
uuid: userUuid,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
success: true,
|
success: true,
|
||||||
result: createMultipleOfflinePass.result,
|
result: createMultipleOfflinePass.result,
|
||||||
@ -156,6 +166,7 @@ export class VisitorPasswordService {
|
|||||||
|
|
||||||
async addOfflineOneTimeTemporaryPassword(
|
async addOfflineOneTimeTemporaryPassword(
|
||||||
addDoorLockOfflineOneTimeDto: AddDoorLockOfflineOneTimeDto,
|
addDoorLockOfflineOneTimeDto: AddDoorLockOfflineOneTimeDto,
|
||||||
|
userUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
const deviceResults = await Promise.allSettled(
|
const deviceResults = await Promise.allSettled(
|
||||||
@ -200,7 +211,14 @@ export class VisitorPasswordService {
|
|||||||
emailBody,
|
emailBody,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if (createOnceOfflinePass.result.offline_temp_password_id) {
|
||||||
|
await this.visitorPasswordRepository.save({
|
||||||
|
passwordTuyaUuid: `${createOnceOfflinePass.result.offline_temp_password_id}`,
|
||||||
|
user: {
|
||||||
|
uuid: userUuid,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
success: true,
|
success: true,
|
||||||
result: createOnceOfflinePass.result,
|
result: createOnceOfflinePass.result,
|
||||||
@ -299,6 +317,7 @@ export class VisitorPasswordService {
|
|||||||
}
|
}
|
||||||
async addOnlineTemporaryPasswordMultipleTime(
|
async addOnlineTemporaryPasswordMultipleTime(
|
||||||
addDoorLockOnlineMultipleDto: AddDoorLockOnlineMultipleDto,
|
addDoorLockOnlineMultipleDto: AddDoorLockOnlineMultipleDto,
|
||||||
|
userUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
const deviceResults = await Promise.allSettled(
|
const deviceResults = await Promise.allSettled(
|
||||||
@ -343,7 +362,14 @@ export class VisitorPasswordService {
|
|||||||
emailBody,
|
emailBody,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if (createPass.result.id) {
|
||||||
|
await this.visitorPasswordRepository.save({
|
||||||
|
passwordTuyaUuid: `${createPass.result.id}`,
|
||||||
|
user: {
|
||||||
|
uuid: userUuid,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
success: true,
|
success: true,
|
||||||
id: createPass.result.id,
|
id: createPass.result.id,
|
||||||
@ -431,18 +457,18 @@ export class VisitorPasswordService {
|
|||||||
this.doorLockService
|
this.doorLockService
|
||||||
.getOnlineTemporaryPasswordsMultiple(deviceId.uuid, true, true)
|
.getOnlineTemporaryPasswordsMultiple(deviceId.uuid, true, true)
|
||||||
.catch(() => {}),
|
.catch(() => {}),
|
||||||
this.doorLockService
|
|
||||||
.getOfflineOneTimeTemporaryPasswords(deviceId.uuid, true, true)
|
|
||||||
.catch(() => {}),
|
|
||||||
this.doorLockService
|
this.doorLockService
|
||||||
.getOfflineOneTimeTemporaryPasswords(deviceId.uuid, true, false)
|
.getOfflineOneTimeTemporaryPasswords(deviceId.uuid, true, false)
|
||||||
.catch(() => {}),
|
.catch(() => {}),
|
||||||
this.doorLockService
|
this.doorLockService
|
||||||
.getOfflineMultipleTimeTemporaryPasswords(deviceId.uuid, true, true)
|
.getOfflineOneTimeTemporaryPasswords(deviceId.uuid, true, true)
|
||||||
.catch(() => {}),
|
.catch(() => {}),
|
||||||
this.doorLockService
|
this.doorLockService
|
||||||
.getOfflineMultipleTimeTemporaryPasswords(deviceId.uuid, true, false)
|
.getOfflineMultipleTimeTemporaryPasswords(deviceId.uuid, true, false)
|
||||||
.catch(() => {}),
|
.catch(() => {}),
|
||||||
|
this.doorLockService
|
||||||
|
.getOfflineMultipleTimeTemporaryPasswords(deviceId.uuid, true, true)
|
||||||
|
.catch(() => {}),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
return (await Promise.all(data)).flat().filter((datum) => {
|
return (await Promise.all(data)).flat().filter((datum) => {
|
||||||
@ -476,6 +502,7 @@ export class VisitorPasswordService {
|
|||||||
|
|
||||||
async addOnlineTemporaryPasswordOneTime(
|
async addOnlineTemporaryPasswordOneTime(
|
||||||
addDoorLockOnlineOneTimeDto: AddDoorLockOnlineOneTimeDto,
|
addDoorLockOnlineOneTimeDto: AddDoorLockOnlineOneTimeDto,
|
||||||
|
userUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
const deviceResults = await Promise.allSettled(
|
const deviceResults = await Promise.allSettled(
|
||||||
@ -519,7 +546,14 @@ export class VisitorPasswordService {
|
|||||||
emailBody,
|
emailBody,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if (createPass.result.id) {
|
||||||
|
await this.visitorPasswordRepository.save({
|
||||||
|
passwordTuyaUuid: `${createPass.result.id}`,
|
||||||
|
user: {
|
||||||
|
uuid: userUuid,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
success: true,
|
success: true,
|
||||||
id: createPass.result.id,
|
id: createPass.result.id,
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import { DeviceService } from 'src/device/services';
|
|||||||
import { ProductRepository } from '@app/common/modules/product/repositories';
|
import { ProductRepository } from '@app/common/modules/product/repositories';
|
||||||
import { DeviceStatusFirebaseService } from '@app/common/firebase/devices-status/services/devices-status.service';
|
import { DeviceStatusFirebaseService } from '@app/common/firebase/devices-status/services/devices-status.service';
|
||||||
import { SpaceRepository } from '@app/common/modules/space/repositories';
|
import { SpaceRepository } from '@app/common/modules/space/repositories';
|
||||||
|
import { VisitorPasswordRepository } from '@app/common/modules/visitor-password/repositories';
|
||||||
@Module({
|
@Module({
|
||||||
imports: [ConfigModule, DeviceRepositoryModule, DoorLockModule],
|
imports: [ConfigModule, DeviceRepositoryModule, DoorLockModule],
|
||||||
controllers: [VisitorPasswordController],
|
controllers: [VisitorPasswordController],
|
||||||
@ -23,6 +24,7 @@ import { SpaceRepository } from '@app/common/modules/space/repositories';
|
|||||||
DeviceStatusFirebaseService,
|
DeviceStatusFirebaseService,
|
||||||
SpaceRepository,
|
SpaceRepository,
|
||||||
DeviceRepository,
|
DeviceRepository,
|
||||||
|
VisitorPasswordRepository,
|
||||||
],
|
],
|
||||||
exports: [VisitorPasswordService],
|
exports: [VisitorPasswordService],
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user