27 lines
941 B
PHP
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);
|
|
}
|
|
}
|