Add constants for message types
This commit is contained in:
parent
eb4083641f
commit
4bc23afc65
5 changed files with 25 additions and 21 deletions
|
@ -157,7 +157,7 @@ App::post('/v1/account')
|
|||
],
|
||||
'userId' => $user->getId(),
|
||||
'userInternalId' => $user->getInternalId(),
|
||||
'providerType' => 'email',
|
||||
'providerType' => MESSAGE_TYPE_EMAIL,
|
||||
'identifier' => $email,
|
||||
])));
|
||||
$user->setAttribute('targets', [$target]);
|
||||
|
@ -678,7 +678,7 @@ App::get('/v1/account/sessions/oauth2/:provider/redirect')
|
|||
],
|
||||
'userId' => $userDoc->getId(),
|
||||
'userInternalId' => $userDoc->getInternalId(),
|
||||
'providerType' => 'email',
|
||||
'providerType' => MESSAGE_TYPE_EMAIL,
|
||||
'identifier' => $email,
|
||||
]));
|
||||
} catch (Duplicate) {
|
||||
|
@ -1732,7 +1732,7 @@ App::post('/v1/account/targets/push')
|
|||
],
|
||||
'providerId' => $providerId ?? null,
|
||||
'providerInternalId' => $provider->getInternalId() ?? null,
|
||||
'providerType' => 'push',
|
||||
'providerType' => MESSAGE_TYPE_PUSH,
|
||||
'userId' => $user->getId(),
|
||||
'userInternalId' => $user->getInternalId(),
|
||||
'identifier' => $identifier,
|
||||
|
|
|
@ -396,7 +396,7 @@ App::post('/v1/users/:userId/targets')
|
|||
->label('sdk.response.model', Response::MODEL_TARGET)
|
||||
->param('targetId', '', new CustomId(), 'Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can\'t start with a special char. Max length is 36 chars.')
|
||||
->param('userId', '', new UID(), 'User ID.')
|
||||
->param('providerType', '', new WhiteList(['email', 'sms', 'push']), 'The target provider type. Can be one of the following: `email`, `sms` or `push`.')
|
||||
->param('providerType', '', new WhiteList([MESSAGE_TYPE_EMAIL, MESSAGE_TYPE_SMS, MESSAGE_TYPE_PUSH]), 'The target provider type. Can be one of the following: `email`, `sms` or `push`.')
|
||||
->param('identifier', '', new Text(Database::LENGTH_KEY), 'The target identifier (token, email, phone etc.)')
|
||||
->param('providerId', '', new UID(), 'Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.', true)
|
||||
->inject('queueForEvents')
|
||||
|
@ -407,7 +407,7 @@ App::post('/v1/users/:userId/targets')
|
|||
|
||||
$provider = new Document();
|
||||
|
||||
if ($providerType === 'push') {
|
||||
if ($providerType === MESSAGE_TYPE_PUSH) {
|
||||
$provider = $dbForProject->getDocument('providers', $providerId);
|
||||
|
||||
if ($provider->isEmpty()) {
|
||||
|
@ -422,13 +422,13 @@ App::post('/v1/users/:userId/targets')
|
|||
throw new Exception(Exception::GENERAL_INVALID_EMAIL);
|
||||
}
|
||||
break;
|
||||
case 'sms':
|
||||
case MESSAGE_TYPE_SMS:
|
||||
$validator = new Phone();
|
||||
if (!$validator->isValid($identifier)) {
|
||||
throw new Exception(Exception::GENERAL_INVALID_PHONE);
|
||||
}
|
||||
break;
|
||||
case 'push':
|
||||
case MESSAGE_TYPE_PUSH:
|
||||
break;
|
||||
default:
|
||||
throw new Exception(Exception::PROVIDER_INCORRECT_TYPE);
|
||||
|
@ -1298,13 +1298,13 @@ App::patch('/v1/users/:userId/targets/:targetId')
|
|||
throw new Exception(Exception::GENERAL_INVALID_EMAIL);
|
||||
}
|
||||
break;
|
||||
case 'sms':
|
||||
case MESSAGE_TYPE_SMS:
|
||||
$validator = new Phone();
|
||||
if (!$validator->isValid($identifier)) {
|
||||
throw new Exception(Exception::GENERAL_INVALID_PHONE);
|
||||
}
|
||||
break;
|
||||
case 'push':
|
||||
case MESSAGE_TYPE_PUSH:
|
||||
break;
|
||||
default:
|
||||
throw new Exception(Exception::PROVIDER_INCORRECT_TYPE);
|
||||
|
|
10
app/init.php
10
app/init.php
|
@ -190,6 +190,10 @@ const MAX_OUTPUT_CHUNK_SIZE = 2 * 1024 * 1024; // 2MB
|
|||
// Function headers
|
||||
const FUNCTION_ALLOWLIST_HEADERS_REQUEST = ['content-type', 'agent', 'content-length', 'host'];
|
||||
const FUNCTION_ALLOWLIST_HEADERS_RESPONSE = ['content-type', 'content-length'];
|
||||
// Message types
|
||||
const MESSAGE_TYPE_EMAIL = 'email';
|
||||
const MESSAGE_TYPE_SMS = 'sms';
|
||||
const MESSAGE_TYPE_PUSH = 'push';
|
||||
// Usage metrics
|
||||
const METRIC_TEAMS = 'teams';
|
||||
const METRIC_USERS = 'users';
|
||||
|
@ -607,11 +611,11 @@ Database::addFilter(
|
|||
$data = \json_decode($message->getAttribute('data', []), true);
|
||||
|
||||
if (\array_key_exists('subject', $data)) {
|
||||
$searchValues = \array_merge($searchValues, [$data['subject'], 'email']);
|
||||
$searchValues = \array_merge($searchValues, [$data['subject'], MESSAGE_TYPE_EMAIL]);
|
||||
} elseif (\array_key_exists('content', $data)) {
|
||||
$searchValues = \array_merge($searchValues, [$data['content'], 'sms']);
|
||||
$searchValues = \array_merge($searchValues, [$data['content'], MESSAGE_TYPE_SMS]);
|
||||
} else {
|
||||
$searchValues = \array_merge($searchValues, [$data['title'], 'push']);
|
||||
$searchValues = \array_merge($searchValues, [$data['title'], MESSAGE_TYPE_PUSH]);
|
||||
}
|
||||
|
||||
$search = \implode(' ', \array_filter($searchValues));
|
||||
|
|
|
@ -67,7 +67,7 @@ class Messaging extends Action
|
|||
}
|
||||
|
||||
if (!\is_null($payload['message']) && !\is_null($payload['recipients'])) {
|
||||
if ($payload['providerType'] === 'SMS') {
|
||||
if ($payload['providerType'] === MESSAGE_TYPE_SMS) {
|
||||
$this->processInternalSMSMessage(new Document($payload['message']), $payload['recipients']);
|
||||
}
|
||||
} else {
|
||||
|
@ -155,9 +155,9 @@ class Messaging extends Action
|
|||
$identifiers = $identifiersByProviderId[$providerId];
|
||||
|
||||
$adapter = match ($provider->getAttribute('type')) {
|
||||
'sms' => $this->sms($provider),
|
||||
'push' => $this->push($provider),
|
||||
'email' => $this->email($provider),
|
||||
MESSAGE_TYPE_SMS => $this->sms($provider),
|
||||
MESSAGE_TYPE_PUSH => $this->push($provider),
|
||||
MESSAGE_TYPE_EMAIL => $this->email($provider),
|
||||
default => throw new Exception(Exception::PROVIDER_INCORRECT_TYPE)
|
||||
};
|
||||
|
||||
|
@ -173,9 +173,9 @@ class Messaging extends Action
|
|||
$messageData->setAttribute('to', $batch);
|
||||
|
||||
$data = match ($provider->getAttribute('type')) {
|
||||
'sms' => $this->buildSMSMessage($messageData, $provider),
|
||||
'push' => $this->buildPushMessage($messageData),
|
||||
'email' => $this->buildEmailMessage($messageData, $provider),
|
||||
MESSAGE_TYPE_SMS => $this->buildSMSMessage($messageData, $provider),
|
||||
MESSAGE_TYPE_PUSH => $this->buildPushMessage($messageData),
|
||||
MESSAGE_TYPE_EMAIL => $this->buildEmailMessage($messageData, $provider),
|
||||
default => throw new Exception(Exception::PROVIDER_INCORRECT_TYPE)
|
||||
};
|
||||
|
||||
|
@ -245,7 +245,7 @@ class Messaging extends Action
|
|||
$provider = new Document([
|
||||
'$id' => ID::unique(),
|
||||
'provider' => $host,
|
||||
'type' => 'sms',
|
||||
'type' => MESSAGE_TYPE_SMS,
|
||||
'name' => 'Internal SMS',
|
||||
'enabled' => true,
|
||||
'credentials' => match ($host) {
|
||||
|
|
|
@ -50,7 +50,7 @@ class Provider extends Model
|
|||
'type' => self::TYPE_STRING,
|
||||
'description' => 'Type of provider.',
|
||||
'default' => '',
|
||||
'example' => 'sms',
|
||||
'example' => MESSAGE_TYPE_SMS,
|
||||
])
|
||||
->addRule('credentials', [
|
||||
'type' => self::TYPE_JSON,
|
||||
|
|
Loading…
Reference in a new issue