Files

27 lines
941 B
PHP

<?php
declare(strict_types=1);
final class HexaGameCloudIdempotency
{
public static function serviceOperationKey(string $operation, string $externalServiceId, ?string $reference = null): string
{
$suffix = ($reference !== null && $reference !== '') ? $reference : gmdate('Y-m-d');
return 'service:' . $operation . ':' . $externalServiceId . ':' . $suffix;
}
public static function renewKey(string $externalServiceId, array $params): string
{
$reference = (string) ($params['invoiceid'] ?? '');
if ($reference === '' && !empty($params['model']['invoiceid'])) {
$reference = (string) $params['model']['invoiceid'];
}
if ($reference === '' && !empty($params['renewalid'])) {
$reference = (string) $params['renewalid'];
}
return self::serviceOperationKey('renew', $externalServiceId, $reference !== '' ? $reference : null);
}
}