86 lines
1.8 KiB
TypeScript
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);
|
|
}
|
|
}
|