Merge remote-tracking branch 'origin/1.6.x' into feat-apns-content-available

# Conflicts:
#	composer.lock
This commit is contained in:
Jake Barnby
2025-01-15 15:01:55 +13:00
42 changed files with 6981 additions and 7145 deletions
+26
View File
@@ -11,6 +11,7 @@ class Audit extends Event
protected string $mode = '';
protected string $userAgent = '';
protected string $ip = '';
protected string $hostname = '';
public function __construct(protected Connection $connection)
{
@@ -113,6 +114,30 @@ class Audit extends Event
return $this->ip;
}
/**
* Set the hostname.
*
* @param string $hostname
*
* @return self
*/
public function setHostname(string $hostname): self
{
$this->hostname = $hostname;
return $this;
}
/**
* Get the hostname.
*
* @return string
*/
public function getHostname(): string
{
return $this->hostname;
}
/**
* Executes the event and sends it to the audit worker.
*
@@ -136,6 +161,7 @@ class Audit extends Event
'ip' => $this->ip,
'userAgent' => $this->userAgent,
'event' => $this->event,
'hostname' => $this->hostname
]);
}
}
+1 -1
View File
@@ -27,7 +27,7 @@ class Messaging extends Event
/**
* Sets type for the build event.
*
* @param string $type Can be `MESSAGE_TYPE_INTERNAL` or `MESSAGE_TYPE_EXTERNAL`.
* @param string $type Can be `MESSAGE_SEND_TYPE_INTERNAL` or `MESSAGE_SEND_TYPE_EXTERNAL`.
* @return self
*/
public function setType(string $type): self
@@ -284,8 +284,6 @@ class Databases extends Action
$dbForProject->deleteDocument('attributes', $relatedAttribute->getId());
}
throw $e;
} catch (\Throwable $e) {
Console::error($e->getMessage());
+4 -14
View File
@@ -97,7 +97,7 @@ class Messaging extends Action
$message = new Document($payload['message'] ?? []);
$recipients = $payload['recipients'] ?? [];
$this->sendInternalSMSMessage($message, $project, $recipients, $queueForUsage, $log);
$this->sendInternalSMSMessage($message, $project, $recipients, $log);
break;
case MESSAGE_SEND_TYPE_EXTERNAL:
$message = $dbForProject->getDocument('messages', $payload['messageId']);
@@ -377,7 +377,7 @@ class Messaging extends Action
}
}
private function sendInternalSMSMessage(Document $message, Document $project, array $recipients, Usage $queueForUsage, Log $log): void
private function sendInternalSMSMessage(Document $message, Document $project, array $recipients, Log $log): void
{
if (empty(System::getEnv('_APP_SMS_PROVIDER')) || empty(System::getEnv('_APP_SMS_FROM'))) {
throw new \Exception('Skipped SMS processing. Missing "_APP_SMS_PROVIDER" or "_APP_SMS_FROM" environment variables.');
@@ -456,24 +456,14 @@ class Messaging extends Action
$adapter->getMaxMessagesPerRequest()
);
batch(\array_map(function ($batch) use ($message, $provider, $adapter, $project, $queueForUsage) {
return function () use ($batch, $message, $provider, $adapter, $project, $queueForUsage) {
batch(\array_map(function ($batch) use ($message, $provider, $adapter) {
return function () use ($batch, $message, $provider, $adapter) {
$message->setAttribute('to', $batch);
$data = $this->buildSmsMessage($message, $provider);
try {
$adapter->send($data);
$countryCode = $adapter->getCountryCode($message['to'][0] ?? '');
if (!empty($countryCode)) {
$queueForUsage
->addMetric(str_replace('{countryCode}', $countryCode, METRIC_AUTH_METHOD_PHONE_COUNTRY_CODE), 1);
}
$queueForUsage
->addMetric(METRIC_AUTH_METHOD_PHONE, 1)
->setProject($project)
->trigger();
} catch (\Throwable $th) {
throw new \Exception('Failed sending to targets with error: ' . $th->getMessage());
}
@@ -15,6 +15,7 @@ class MetricBreakdown extends Model
'description' => 'Resource ID.',
'default' => '',
'example' => '5e5ea5c16897e',
'required' => false,
])
->addRule('name', [
'type' => self::TYPE_STRING,
@@ -27,6 +28,13 @@ class MetricBreakdown extends Model
'description' => 'The value of this metric at the timestamp.',
'default' => 0,
'example' => 1,
])
->addRule('estimate', [
'type' => self::TYPE_FLOAT,
'description' => 'The estimated value of this metric at the end of the period.',
'default' => 0,
'example' => 1,
'required' => false,
]);
}
@@ -152,6 +152,25 @@ class UsageProject extends Model
'example' => [],
'array' => true
])
->addRule('authPhoneTotal', [
'type' => self::TYPE_INTEGER,
'description' => 'Total aggregated number of phone auth.',
'default' => 0,
'example' => 0,
])
->addRule('authPhoneEstimate', [
'type' => self::TYPE_FLOAT,
'description' => 'Estimated total aggregated cost of phone auth.',
'default' => 0,
'example' => 0,
])
->addRule('authPhoneCountryBreakdown', [
'type' => Response::MODEL_METRIC_BREAKDOWN,
'description' => 'Aggregated breakdown in totals of phone auth by country.',
'default' => [],
'example' => [],
'array' => true
])
;
}