Files
3dp-manager/server/src/domains/domains.controller.ts
T

86 lines
1.8 KiB
TypeScript

import {
Controller,
Get,
Post,
Body,
Param,
Delete,
Query,
} from '@nestjs/common';
import { DomainsService } from './domains.service';
import { DomainScannerService } from './domain-scanner.service';
@Controller('domains')
export class DomainsController {
constructor(
private readonly domainsService: DomainsService,
private readonly domainScannerService: DomainScannerService,
) {}
@Post()
create(@Body() body: { name: string }) {
return this.domainsService.create(body);
}
@Post('upload')
uploadMany(@Body() body: { domains: string[] }) {
return this.domainsService.createMany(body.domains);
}
@Get('scan/capabilities')
scanCapabilities() {
return this.domainScannerService.getCapabilities();
}
@Get('scan/status')
scanStatus() {
return this.domainScannerService.getScanStatus();
}
@Get('scan/last-result')
lastScanResult() {
return this.domainScannerService.getLastScanResult();
}
@Post('scan/start')
startScan(
@Body()
body: {
addr: string;
scanSeconds?: number;
thread?: number;
timeout?: number;
},
) {
return this.domainScannerService.startScan(body);
}
@Get('all')
findAllWithoutPagination() {
return this.domainsService.findAllUnpaginated();
}
@Get()
findAll(@Query('page') page: number, @Query('limit') limit: number) {
const pageNum = page ? +page : 1;
const limitNum = limit ? +limit : 10;
return this.domainsService.findAll(pageNum, limitNum);
}
@Get(':id')
findOne(@Param('id') id: string) {
return this.domainsService.findOne(+id);
}
@Delete('all')
removeAll() {
return this.domainsService.removeAll();
}
@Delete(':id')
remove(@Param('id') id: string) {
return this.domainsService.remove(+id);
}
}