fix(domains): Verfuegbarkeit mit vollstaendiger Domain abfragen (gegen AutoDNS-Demo geprueft)

Mit nur dem Namensteil als searchToken liefert /domainstudio data: [].

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-10-08 14:54:19 +02:00
parent e18b3c8e24
commit f24ce735ab
2 changed files with 8 additions and 6 deletions
@@ -315,9 +315,9 @@ describe('checkAvailability', () => {
expect(h.calls[0].url).toBe('https://api.demo.autodns.com/v1/domainstudio'); expect(h.calls[0].url).toBe('https://api.demo.autodns.com/v1/domainstudio');
expect(h.calls[0].init.method).toBe('POST'); expect(h.calls[0].init.method).toBe('POST');
expect(JSON.parse(h.calls[0].init.body as string)).toEqual({ expect(JSON.parse(h.calls[0].init.body as string)).toEqual({
searchToken: 'beispiel', searchToken: 'beispiel.de',
currency: 'EUR', currency: 'EUR',
sources: { initial: { tlds: ['de'], services: ['WHOIS', 'PRICE'] } }, sources: { custom: { domains: ['beispiel.de'], services: ['WHOIS', 'PRICE'] } },
}); });
expect(result).toMatchObject({ expect(result).toMatchObject({
domain: 'beispiel.de', domain: 'beispiel.de',
@@ -23,7 +23,7 @@ import {
parseJobList, parseJobList,
parseProfileNameServers, parseProfileNameServers,
} from './autodns-parse'; } from './autodns-parse';
import { normalizeDomainName, splitDomain } from './domain-name'; import { normalizeDomainName } from './domain-name';
import { autodnsFailureToHttp, type DomainsEnvironment } from './domains.types'; import { autodnsFailureToHttp, type DomainsEnvironment } from './domains.types';
import { DomainsDirectoryService } from './domains-directory.service'; import { DomainsDirectoryService } from './domains-directory.service';
import { DomainsSettingsService } from './domains-settings.service'; import { DomainsSettingsService } from './domains-settings.service';
@@ -303,11 +303,13 @@ export class DomainsOrdersService {
ascii: string, ascii: string,
unicode: string, unicode: string,
): Promise<AvailabilityView> { ): Promise<AvailabilityView> {
const { label, tld } = splitDomain(ascii); // Gegen das AutoDNS-Demo-System geprueft (08.10.2026): mit nur dem Namensteil
// als searchToken kommt `data: []` zurueck. Die vollstaendige Domain als
// eigene Quelle (`custom`) liefert genau diesen einen Eintrag mit WHOIS-Status.
const result = await this.callOrThrow(credentials, 'POST', '/domainstudio', { const result = await this.callOrThrow(credentials, 'POST', '/domainstudio', {
searchToken: label, searchToken: ascii,
currency: 'EUR', currency: 'EUR',
sources: { initial: { tlds: [tld], services: ['WHOIS', 'PRICE'] } }, sources: { custom: { domains: [ascii], services: ['WHOIS', 'PRICE'] } },
}); });
const parsed = parseDomainStudio(result.data, ascii); const parsed = parseDomainStudio(result.data, ascii);
return { return {