mirror of
https://github.com/getnamingo/registry.git
synced 2025-08-03 08:11:49 +02:00
RDAP conforms February 2024 gTLD RDAP profile
This commit is contained in:
parent
95e8fb73a4
commit
ef475600b3
2 changed files with 64 additions and 30 deletions
|
@ -52,7 +52,7 @@ function mapContactToVCard($contactDetails, $role, $c) {
|
|||
|
||||
return [
|
||||
'objectClassName' => 'entity',
|
||||
'handle' => ['C' . $contactDetails['id'] . '-' . $c['roid']],
|
||||
'handle' => 'C' . $contactDetails['id'] . '-' . $c['roid'],
|
||||
'roles' => [$role],
|
||||
'remarks' => [
|
||||
[
|
||||
|
@ -84,18 +84,17 @@ function mapContactToVCard($contactDetails, $role, $c) {
|
|||
['version', new stdClass(), 'text', '4.0'],
|
||||
["fn", new stdClass(), 'text', $disclose_name ? $contactDetails['name'] : "REDACTED FOR PRIVACY"],
|
||||
["org", new stdClass(), 'text', $disclose_org ? $contactDetails['org'] : "REDACTED FOR PRIVACY"],
|
||||
["adr", [
|
||||
"", // Post office box
|
||||
["adr", ["CC" => strtoupper($contactDetails['cc'])], 'text', [ // specify "CC" parameter for country code
|
||||
$disclose_addr ? $contactDetails['street1'] : "REDACTED FOR PRIVACY", // Extended address
|
||||
$disclose_addr ? $contactDetails['street2'] : "REDACTED FOR PRIVACY", // Street address
|
||||
$disclose_addr ? $contactDetails['street3'] : "REDACTED FOR PRIVACY", // Additional street address
|
||||
$disclose_addr ? $contactDetails['city'] : "REDACTED FOR PRIVACY", // Locality
|
||||
$disclose_addr ? $contactDetails['sp'] : "REDACTED FOR PRIVACY", // Region
|
||||
$disclose_addr ? $contactDetails['pc'] : "REDACTED FOR PRIVACY", // Postal code
|
||||
$disclose_addr ? strtoupper($contactDetails['cc']) : "REDACTED FOR PRIVACY" // Country name
|
||||
"" // Add empty last element as required for ADR structure
|
||||
]],
|
||||
["tel", new stdClass(), 'uri', $disclose_voice ? "tel:" . $contactDetails['voice'] : "REDACTED FOR PRIVACY", ["type" => "voice"]],
|
||||
["tel", new stdClass(), 'uri', $disclose_fax ? "tel:" . $contactDetails['fax'] : "REDACTED FOR PRIVACY", ["type" => "fax"]],
|
||||
["tel", ["type" => "voice"], 'uri', $disclose_voice ? "tel:" . $contactDetails['voice'] : "REDACTED FOR PRIVACY"],
|
||||
["tel", ["type" => "fax"], 'uri', $disclose_fax ? "tel:" . $contactDetails['fax'] : "REDACTED FOR PRIVACY"],
|
||||
["email", new stdClass(), 'text', $disclose_email ? $contactDetails['email'] : "REDACTED FOR PRIVACY"],
|
||||
]
|
||||
],
|
||||
|
|
|
@ -334,11 +334,13 @@ function handleDomainQuery($request, $response, $pdo, $domainName, $c, $log) {
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -395,9 +397,9 @@ function handleDomainQuery($request, $response, $pdo, $domainName, $c, $log) {
|
|||
$statuses = $stmt2->fetchAll(PDO::FETCH_COLUMN, 0);
|
||||
|
||||
// Add rgpstatus to statuses if it's not empty
|
||||
if (!empty($domainDetails['rgpstatus'])) {
|
||||
$statuses[] = $domainDetails['rgpstatus'];
|
||||
}
|
||||
//if (!empty($domainDetails['rgpstatus'])) {
|
||||
//$statuses[] = $domainDetails['rgpstatus'];
|
||||
//}
|
||||
|
||||
// If statuses array is empty, add 'active' to it
|
||||
if (empty($statuses)) {
|
||||
|
@ -505,8 +507,8 @@ function handleDomainQuery($request, $response, $pdo, $domainName, $c, $log) {
|
|||
$rdapResponse = [
|
||||
'rdapConformance' => [
|
||||
'rdap_level_0',
|
||||
'icann_rdap_response_profile_0',
|
||||
'icann_rdap_technical_implementation_guide_0',
|
||||
'icann_rdap_response_profile_1',
|
||||
'icann_rdap_technical_implementation_guide_1',
|
||||
],
|
||||
'objectClassName' => 'domain',
|
||||
'entities' => array_merge(
|
||||
|
@ -533,6 +535,7 @@ function handleDomainQuery($request, $response, $pdo, $domainName, $c, $log) {
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/entity/" . ($registrarDetails['iana_id'] ?: $registrarDetails['id']),
|
||||
"value" => $c['rdap_url'] . "/entity/" . ($registrarDetails['iana_id'] ?: $registrarDetails['id']),
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
]
|
||||
|
@ -581,11 +584,13 @@ function handleDomainQuery($request, $response, $pdo, $domainName, $c, $log) {
|
|||
'links' => [
|
||||
[
|
||||
'href' => $c['rdap_url'] . '/domain/' . $domain,
|
||||
'value' => $c['rdap_url'] . '/domain/' . $domain,
|
||||
'rel' => 'self',
|
||||
'type' => 'application/rdap+json',
|
||||
],
|
||||
[
|
||||
'href' => $registrarDetails['rdap_server'] . 'domain/' . $domain,
|
||||
'value' => $registrarDetails['rdap_server'] . 'domain/' . $domain,
|
||||
'rel' => 'related',
|
||||
'type' => 'application/rdap+json',
|
||||
]
|
||||
|
@ -598,6 +603,7 @@ function handleDomainQuery($request, $response, $pdo, $domainName, $c, $log) {
|
|||
'links' => [
|
||||
[
|
||||
'href' => $c['rdap_url'] . '/nameserver/' . $nameserverDetails['name'],
|
||||
'value' => $c['rdap_url'] . '/nameserver/' . $nameserverDetails['name'],
|
||||
'rel' => 'self',
|
||||
'type' => 'application/rdap+json',
|
||||
],
|
||||
|
@ -608,7 +614,7 @@ function handleDomainQuery($request, $response, $pdo, $domainName, $c, $log) {
|
|||
"This record contains only a brief summary. To access the full details, please initiate a specific query targeting this entity."
|
||||
],
|
||||
"title" => "Incomplete Data",
|
||||
"type" => "The object's information is incomplete due to reasons not currently understood."
|
||||
"type" => "object truncated due to authorization"
|
||||
],
|
||||
],
|
||||
];
|
||||
|
@ -631,11 +637,13 @@ function handleDomainQuery($request, $response, $pdo, $domainName, $c, $log) {
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -777,11 +785,13 @@ function handleEntityQuery($request, $response, $pdo, $entityHandle, $c, $log) {
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -929,8 +939,8 @@ function handleEntityQuery($request, $response, $pdo, $entityHandle, $c, $log) {
|
|||
$rdapResponse = [
|
||||
'rdapConformance' => [
|
||||
'rdap_level_0',
|
||||
'icann_rdap_response_profile_0',
|
||||
'icann_rdap_technical_implementation_guide_0',
|
||||
'icann_rdap_response_profile_1',
|
||||
'icann_rdap_technical_implementation_guide_1',
|
||||
],
|
||||
'objectClassName' => 'entity',
|
||||
'entities' => $entityBlocks,
|
||||
|
@ -981,11 +991,13 @@ function handleEntityQuery($request, $response, $pdo, $entityHandle, $c, $log) {
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -1165,11 +1177,13 @@ function handleNameserverQuery($request, $response, $pdo, $nameserverHandle, $c,
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -1277,8 +1291,8 @@ function handleNameserverQuery($request, $response, $pdo, $nameserverHandle, $c,
|
|||
$rdapResponse = [
|
||||
'rdapConformance' => [
|
||||
'rdap_level_0',
|
||||
'icann_rdap_response_profile_0',
|
||||
'icann_rdap_technical_implementation_guide_0',
|
||||
'icann_rdap_response_profile_1',
|
||||
'icann_rdap_technical_implementation_guide_1',
|
||||
],
|
||||
'objectClassName' => 'nameserver',
|
||||
'entities' => array_merge(
|
||||
|
@ -1305,6 +1319,7 @@ function handleNameserverQuery($request, $response, $pdo, $nameserverHandle, $c,
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/entity/" . ($registrarDetails['iana_id'] ?: $registrarDetails['id']),
|
||||
"value" => $c['rdap_url'] . "/entity/" . ($registrarDetails['iana_id'] ?: $registrarDetails['id']),
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
]
|
||||
|
@ -1358,11 +1373,13 @@ function handleNameserverQuery($request, $response, $pdo, $nameserverHandle, $c,
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -1653,11 +1670,13 @@ function handleDomainSearchQuery($request, $response, $pdo, $searchPattern, $c,
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -1714,9 +1733,9 @@ function handleDomainSearchQuery($request, $response, $pdo, $searchPattern, $c,
|
|||
$statuses = $stmt2->fetchAll(PDO::FETCH_COLUMN, 0);
|
||||
|
||||
// Add rgpstatus to statuses if it's not empty
|
||||
if (!empty($domainDetails['rgpstatus'])) {
|
||||
$statuses[] = $domainDetails['rgpstatus'];
|
||||
}
|
||||
//if (!empty($domainDetails['rgpstatus'])) {
|
||||
//$statuses[] = $domainDetails['rgpstatus'];
|
||||
//}
|
||||
|
||||
// If statuses array is empty, add 'active' to it
|
||||
if (empty($statuses)) {
|
||||
|
@ -1824,8 +1843,8 @@ function handleDomainSearchQuery($request, $response, $pdo, $searchPattern, $c,
|
|||
$rdapResponse = [
|
||||
'rdapConformance' => [
|
||||
'rdap_level_0',
|
||||
'icann_rdap_response_profile_0',
|
||||
'icann_rdap_technical_implementation_guide_0',
|
||||
'icann_rdap_response_profile_1',
|
||||
'icann_rdap_technical_implementation_guide_1',
|
||||
],
|
||||
'domainSearchResults' => [
|
||||
[
|
||||
|
@ -1854,6 +1873,7 @@ function handleDomainSearchQuery($request, $response, $pdo, $searchPattern, $c,
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/entity/" . ($registrarDetails['iana_id'] ?: $registrarDetails['id']),
|
||||
"value" => $c['rdap_url'] . "/entity/" . ($registrarDetails['iana_id'] ?: $registrarDetails['id']),
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
]
|
||||
|
@ -1927,7 +1947,7 @@ function handleDomainSearchQuery($request, $response, $pdo, $searchPattern, $c,
|
|||
"This record contains only a brief summary. To access the full details, please initiate a specific query targeting this entity."
|
||||
],
|
||||
"title" => "Incomplete Data",
|
||||
"type" => "The object's information is incomplete due to reasons not currently understood."
|
||||
"type" => "object truncated due to authorization"
|
||||
],
|
||||
],
|
||||
];
|
||||
|
@ -1952,11 +1972,13 @@ function handleDomainSearchQuery($request, $response, $pdo, $searchPattern, $c,
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -2177,11 +2199,13 @@ function handleNameserverSearchQuery($request, $response, $pdo, $searchPattern,
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -2303,8 +2327,8 @@ function handleNameserverSearchQuery($request, $response, $pdo, $searchPattern,
|
|||
$rdapResponse = [
|
||||
'rdapConformance' => [
|
||||
'rdap_level_0',
|
||||
'icann_rdap_response_profile_0',
|
||||
'icann_rdap_technical_implementation_guide_0',
|
||||
'icann_rdap_response_profile_1',
|
||||
'icann_rdap_technical_implementation_guide_1',
|
||||
],
|
||||
'nameserverSearchResults' => $rdapResult,
|
||||
"notices" => [
|
||||
|
@ -2320,11 +2344,13 @@ function handleNameserverSearchQuery($request, $response, $pdo, $searchPattern,
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -2428,8 +2454,8 @@ function handleNameserverSearchQuery($request, $response, $pdo, $searchPattern,
|
|||
$rdapResponse = [
|
||||
'rdapConformance' => [
|
||||
'rdap_level_0',
|
||||
'icann_rdap_response_profile_0',
|
||||
'icann_rdap_technical_implementation_guide_0',
|
||||
'icann_rdap_response_profile_1',
|
||||
'icann_rdap_technical_implementation_guide_1',
|
||||
],
|
||||
'nameserverSearchResults' => [
|
||||
[
|
||||
|
@ -2458,6 +2484,7 @@ function handleNameserverSearchQuery($request, $response, $pdo, $searchPattern,
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/entity/" . ($registrarDetails['iana_id'] ?: $registrarDetails['id']),
|
||||
"value" => $c['rdap_url'] . "/entity/" . ($registrarDetails['iana_id'] ?: $registrarDetails['id']),
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
]
|
||||
|
@ -2513,11 +2540,13 @@ function handleNameserverSearchQuery($request, $response, $pdo, $searchPattern,
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -2701,11 +2730,13 @@ function handleEntitySearchQuery($request, $response, $pdo, $searchPattern, $c,
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -2805,8 +2836,8 @@ function handleEntitySearchQuery($request, $response, $pdo, $searchPattern, $c,
|
|||
$rdapResponse = [
|
||||
'rdapConformance' => [
|
||||
'rdap_level_0',
|
||||
'icann_rdap_response_profile_0',
|
||||
'icann_rdap_technical_implementation_guide_0',
|
||||
'icann_rdap_response_profile_1',
|
||||
'icann_rdap_technical_implementation_guide_1',
|
||||
],
|
||||
'entitySearchResults' => [
|
||||
[
|
||||
|
@ -2861,11 +2892,13 @@ function handleEntitySearchQuery($request, $response, $pdo, $searchPattern, $c,
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
@ -2949,8 +2982,8 @@ function handleHelpQuery($request, $response, $pdo, $c) {
|
|||
// Set the RDAP conformance levels
|
||||
$rdapConformance = [
|
||||
"rdap_level_0",
|
||||
"icann_rdap_response_profile_0",
|
||||
"icann_rdap_technical_implementation_guide_0"
|
||||
"icann_rdap_response_profile_1",
|
||||
"icann_rdap_technical_implementation_guide_1"
|
||||
];
|
||||
|
||||
// Set the descriptions and links for the help section
|
||||
|
@ -2996,11 +3029,13 @@ function handleHelpQuery($request, $response, $pdo, $c) {
|
|||
"links" => [
|
||||
[
|
||||
"href" => $c['rdap_url'] . "/help",
|
||||
"value" => $c['rdap_url'] . "/help",
|
||||
"rel" => "self",
|
||||
"type" => "application/rdap+json"
|
||||
],
|
||||
[
|
||||
"href" => $c['registry_url'],
|
||||
"value" => $c['registry_url'],
|
||||
"rel" => "alternate",
|
||||
"type" => "text/html"
|
||||
],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue