feat(03-02): add domaincheck backend - DNS service, API endpoint, module seed
- CheckDomainDto with regex validation (T-03-05) and max 10 TLDs (T-03-06) - DomaincheckService using node:dns/promises with 5s timeout per lookup - POST /modules/domaincheck/check protected by UseModule guard (T-03-08) - DomaincheckModule seeds itself into registry on startup via OnModuleInit - Default TLDs: de, com, net, org (D-03)
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { Body, Controller, Post } from '@nestjs/common';
|
||||
import { UseModule } from '../module-registry/module.guard';
|
||||
import { CheckDomainDto } from './dto/check-domain.dto';
|
||||
import { DomaincheckService } from './domaincheck.service';
|
||||
|
||||
/**
|
||||
* Controller for the Domaincheck module.
|
||||
*
|
||||
* POST /modules/domaincheck/check — accepts a domain label, checks TLD
|
||||
* variants via DNS, and returns availability status for each.
|
||||
*
|
||||
* Protected by @UseModule('domaincheck') which ensures the requesting
|
||||
* tenant has the domaincheck module activated (per T-03-08).
|
||||
*/
|
||||
@Controller('modules/domaincheck')
|
||||
@UseModule('domaincheck')
|
||||
export class DomaincheckController {
|
||||
constructor(private readonly domaincheckService: DomaincheckService) {}
|
||||
|
||||
/**
|
||||
* Check domain availability across TLD variants.
|
||||
*
|
||||
* @param dto - Contains domain label and optional TLD list
|
||||
* @returns Domain and results array with tld, fqdn, and status
|
||||
*/
|
||||
@Post('check')
|
||||
async checkDomain(@Body() dto: CheckDomainDto) {
|
||||
const results = await this.domaincheckService.checkDomain(
|
||||
dto.domain,
|
||||
dto.tlds,
|
||||
);
|
||||
|
||||
return {
|
||||
domain: dto.domain,
|
||||
results,
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user