eduverse-backend / src /modules /settings /dto /create-integration.dto.ts
amirhamdi's picture
before testing endpoints
990c0e8
Raw
History Blame Contribute Delete
1.29 kB
import { IsString, IsOptional, IsEnum, IsNumber, IsBoolean } from 'class-validator';
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { IntegrationType } from '../entities/api-integration.entity';
import { PartialType } from '@nestjs/swagger';
export class CreateIntegrationDto {
@ApiProperty({ description: 'Integration name' })
@IsString()
integrationName: string;
@ApiProperty({ description: 'Integration type', enum: IntegrationType })
@IsEnum(IntegrationType)
integrationType: IntegrationType;
@ApiProperty({ description: 'Campus ID' })
@IsNumber()
campusId: number;
@ApiPropertyOptional({ description: 'API endpoint URL' })
@IsOptional()
@IsString()
apiEndpoint?: string;
@ApiPropertyOptional({ description: 'API key (will be encrypted)' })
@IsOptional()
@IsString()
apiKey?: string;
@ApiPropertyOptional({ description: 'API secret (will be encrypted)' })
@IsOptional()
@IsString()
apiSecret?: string;
@ApiPropertyOptional({ description: 'Configuration JSON' })
@IsOptional()
@IsString()
configuration?: string;
}
export class UpdateIntegrationDto extends PartialType(CreateIntegrationDto) {
@ApiPropertyOptional({ description: 'Active status' })
@IsOptional()
@IsBoolean()
isActive?: boolean;
}