mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-11-26 16:44:55 +00:00
added space model controller for create
This commit is contained in:
@ -266,6 +266,16 @@ export class ControllerRoute {
|
||||
};
|
||||
};
|
||||
|
||||
static SPACE_MODEL = class {
|
||||
public static readonly ROUTE = '/projects/:projectUuid/space-models';
|
||||
static ACTIONS = class {
|
||||
public static readonly CREATE_SPACE_MODEL_SUMMARY =
|
||||
'Create a New Space Model';
|
||||
public static readonly CREATE_SPACE_MODEL_DESCRIPTION =
|
||||
'This endpoint allows you to create a new space model within a specified project. A space model defines the structure of spaces, including subspaces, products, and product items, and is uniquely identifiable within the project.';
|
||||
};
|
||||
};
|
||||
|
||||
static PRODUCT = class {
|
||||
public static readonly ROUTE = 'products';
|
||||
static ACTIONS = class {
|
||||
|
||||
@ -23,6 +23,7 @@ import { ScheduleModule } from './schedule/schedule.module';
|
||||
import { SpaceModule } from './space/space.module';
|
||||
import { ProductModule } from './product';
|
||||
import { ProjectModule } from './project';
|
||||
import { SpaceModelModule } from './space-model';
|
||||
@Module({
|
||||
imports: [
|
||||
ConfigModule.forRoot({
|
||||
@ -34,7 +35,7 @@ import { ProjectModule } from './project';
|
||||
CommunityModule,
|
||||
|
||||
SpaceModule,
|
||||
|
||||
SpaceModelModule,
|
||||
GroupModule,
|
||||
DeviceModule,
|
||||
DeviceMessagesSubscriptionModule,
|
||||
|
||||
1
src/space-model/controllers/index.ts
Normal file
1
src/space-model/controllers/index.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from './space-model.controller';
|
||||
35
src/space-model/controllers/space-model.controller.ts
Normal file
35
src/space-model/controllers/space-model.controller.ts
Normal file
@ -0,0 +1,35 @@
|
||||
import { ControllerRoute } from '@app/common/constants/controller-route';
|
||||
import { Body, Controller, Param, Post, UseGuards } from '@nestjs/common';
|
||||
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
|
||||
import { SpaceModelService } from '../services';
|
||||
import { CreateSpaceModelDto } from '../dtos';
|
||||
import { ProjectParam } from 'src/community/dtos';
|
||||
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
|
||||
import { BaseResponseDto } from '@app/common/dto/base.response.dto';
|
||||
|
||||
@ApiTags('Space Model Module')
|
||||
@Controller({
|
||||
version: '1',
|
||||
path: ControllerRoute.SPACE_MODEL.ROUTE,
|
||||
})
|
||||
export class SpaceModelController {
|
||||
constructor(private readonly spaceModelService: SpaceModelService) {}
|
||||
|
||||
@ApiBearerAuth()
|
||||
@UseGuards(JwtAuthGuard)
|
||||
@ApiOperation({
|
||||
summary: ControllerRoute.SPACE_MODEL.ACTIONS.CREATE_SPACE_MODEL_SUMMARY,
|
||||
description:
|
||||
ControllerRoute.SPACE_MODEL.ACTIONS.CREATE_SPACE_MODEL_DESCRIPTION,
|
||||
})
|
||||
@Post()
|
||||
async createSpaceModel(
|
||||
@Body() createSpaceModelDto: CreateSpaceModelDto,
|
||||
@Param() projectParam: ProjectParam,
|
||||
): Promise<BaseResponseDto> {
|
||||
return await this.spaceModelService.createSpaceModel(
|
||||
createSpaceModelDto,
|
||||
projectParam,
|
||||
);
|
||||
}
|
||||
}
|
||||
1
src/space-model/index.ts
Normal file
1
src/space-model/index.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from './space-model.module';
|
||||
37
src/space-model/space-model.module.ts
Normal file
37
src/space-model/space-model.module.ts
Normal file
@ -0,0 +1,37 @@
|
||||
import { SpaceRepositoryModule } from '@app/common/modules/space/space.repository.module';
|
||||
import { Module } from '@nestjs/common';
|
||||
import { ConfigModule } from '@nestjs/config';
|
||||
import { SpaceModelController } from './controllers';
|
||||
import {
|
||||
SpaceModelService,
|
||||
SpaceProductItemModelService,
|
||||
SpaceProductModelService,
|
||||
SubSpaceModelService,
|
||||
} from './services';
|
||||
import {
|
||||
SpaceModelRepository,
|
||||
SpaceProductItemModelRepository,
|
||||
SpaceProductModelRepository,
|
||||
SubspaceModelRepository,
|
||||
} from '@app/common/modules/space-model';
|
||||
import { ProjectRepository } from '@app/common/modules/project/repositiories';
|
||||
import { ProductRepository } from '@app/common/modules/product/repositories';
|
||||
|
||||
@Module({
|
||||
imports: [ConfigModule, SpaceRepositoryModule],
|
||||
controllers: [SpaceModelController],
|
||||
providers: [
|
||||
SpaceModelService,
|
||||
SpaceModelRepository,
|
||||
ProjectRepository,
|
||||
SubSpaceModelService,
|
||||
SpaceProductModelService,
|
||||
SubspaceModelRepository,
|
||||
SpaceProductModelRepository,
|
||||
ProductRepository,
|
||||
SpaceProductItemModelService,
|
||||
SpaceProductItemModelRepository,
|
||||
],
|
||||
exports: [],
|
||||
})
|
||||
export class SpaceModelModule {}
|
||||
@ -5,7 +5,12 @@ import {
|
||||
HttpStatus,
|
||||
Injectable,
|
||||
} from '@nestjs/common';
|
||||
import { AddSpaceDto, CommunitySpaceParam, GetSpaceParam, UpdateSpaceDto } from '../dtos';
|
||||
import {
|
||||
AddSpaceDto,
|
||||
CommunitySpaceParam,
|
||||
GetSpaceParam,
|
||||
UpdateSpaceDto,
|
||||
} from '../dtos';
|
||||
import { SuccessResponseDto } from '@app/common/dto/success.response.dto';
|
||||
import { BaseResponseDto } from '@app/common/dto/base.response.dto';
|
||||
import { CommunityRepository } from '@app/common/modules/community/repositories';
|
||||
|
||||
Reference in New Issue
Block a user