mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-15 18:27:05 +00:00
142 lines
3.8 KiB
TypeScript
142 lines
3.8 KiB
TypeScript
import { SceneService } from '../services/scene.service';
|
|
import {
|
|
Body,
|
|
Controller,
|
|
Delete,
|
|
Get,
|
|
HttpException,
|
|
HttpStatus,
|
|
Param,
|
|
Post,
|
|
Put,
|
|
UseGuards,
|
|
} from '@nestjs/common';
|
|
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
|
|
import { AddSceneTapToRunDto, UpdateSceneTapToRunDto } from '../dtos/scene.dto';
|
|
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
|
|
|
|
@ApiTags('Scene Module')
|
|
@Controller({
|
|
version: '1',
|
|
path: 'scene',
|
|
})
|
|
export class SceneController {
|
|
constructor(private readonly sceneService: SceneService) {}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Post('tap-to-run')
|
|
async addTapToRunScene(@Body() addSceneTapToRunDto: AddSceneTapToRunDto) {
|
|
try {
|
|
const tapToRunScene =
|
|
await this.sceneService.addTapToRunScene(addSceneTapToRunDto);
|
|
return {
|
|
statusCode: HttpStatus.CREATED,
|
|
success: true,
|
|
message: 'Scene added successfully',
|
|
data: tapToRunScene,
|
|
};
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get('tap-to-run/:unitUuid')
|
|
async getTapToRunSceneByUnit(@Param('unitUuid') unitUuid: string) {
|
|
try {
|
|
const tapToRunScenes =
|
|
await this.sceneService.getTapToRunSceneByUnit(unitUuid);
|
|
return tapToRunScenes;
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Delete('tap-to-run/:unitUuid/:sceneId')
|
|
async deleteTapToRunScene(
|
|
@Param('unitUuid') unitUuid: string,
|
|
@Param('sceneId') sceneId: string,
|
|
) {
|
|
try {
|
|
await this.sceneService.deleteTapToRunScene(unitUuid, sceneId);
|
|
return {
|
|
statusCode: HttpStatus.OK,
|
|
message: 'Scene Deleted Successfully',
|
|
};
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Post('tap-to-run/trigger/:sceneId')
|
|
async triggerTapToRunScene(@Param('sceneId') sceneId: string) {
|
|
try {
|
|
await this.sceneService.triggerTapToRunScene(sceneId);
|
|
return {
|
|
statusCode: HttpStatus.CREATED,
|
|
success: true,
|
|
message: 'Scene trigger successfully',
|
|
};
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Get('tap-to-run/details/:sceneId')
|
|
async getTapToRunSceneDetails(@Param('sceneId') sceneId: string) {
|
|
try {
|
|
const tapToRunScenes =
|
|
await this.sceneService.getTapToRunSceneDetails(sceneId);
|
|
return tapToRunScenes;
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
``;
|
|
}
|
|
}
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard)
|
|
@Put('tap-to-run/:sceneId')
|
|
async updateTapToRunScene(
|
|
@Body() updateSceneTapToRunDto: UpdateSceneTapToRunDto,
|
|
@Param('sceneId') sceneId: string,
|
|
) {
|
|
try {
|
|
const tapToRunScene = await this.sceneService.updateTapToRunScene(
|
|
updateSceneTapToRunDto,
|
|
sceneId,
|
|
);
|
|
return {
|
|
statusCode: HttpStatus.CREATED,
|
|
success: true,
|
|
message: 'Scene updated successfully',
|
|
data: tapToRunScene,
|
|
};
|
|
} catch (error) {
|
|
throw new HttpException(
|
|
error.message || 'Internal server error',
|
|
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
);
|
|
}
|
|
}
|
|
}
|