adds test for provider controllers
This commit is contained in:
parent
dbbf4522e3
commit
c225563d77
5 changed files with 224 additions and 34 deletions
|
@ -22,6 +22,10 @@ $member = [
|
||||||
'execution.write',
|
'execution.write',
|
||||||
'targets.read',
|
'targets.read',
|
||||||
'targets.write',
|
'targets.write',
|
||||||
|
'providers.write',
|
||||||
|
'providers.read',
|
||||||
|
'messages.write',
|
||||||
|
'messages.read'
|
||||||
];
|
];
|
||||||
|
|
||||||
$admins = [
|
$admins = [
|
||||||
|
@ -57,6 +61,10 @@ $admins = [
|
||||||
'migrations.write',
|
'migrations.write',
|
||||||
'targets.read',
|
'targets.read',
|
||||||
'targets.write',
|
'targets.write',
|
||||||
|
'providers.write',
|
||||||
|
'providers.read',
|
||||||
|
'messages.write',
|
||||||
|
'messages.read'
|
||||||
];
|
];
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
|
@ -70,7 +70,7 @@ App::get('/v1/messaging/providers/:id')
|
||||||
->param('id', null, new UID(), 'Provider ID.')
|
->param('id', null, new UID(), 'Provider ID.')
|
||||||
->inject('dbForProject')
|
->inject('dbForProject')
|
||||||
->inject('response')
|
->inject('response')
|
||||||
->action(function (string $id, Response $response, Database $dbForProject) {
|
->action(function (string $id, Database $dbForProject, Response $response) {
|
||||||
$provider = $dbForProject->getDocument('providers', $id);
|
$provider = $dbForProject->getDocument('providers', $id);
|
||||||
|
|
||||||
if ($provider->isEmpty()) {
|
if ($provider->isEmpty()) {
|
||||||
|
@ -86,7 +86,7 @@ App::get('/v1/messaging/providers/:id')
|
||||||
App::post('/v1/messaging/providers/mailgun')
|
App::post('/v1/messaging/providers/mailgun')
|
||||||
->desc('Create Mailgun Provider')
|
->desc('Create Mailgun Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.create')
|
->label('audits.event', 'messages.providers.create')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -118,7 +118,7 @@ App::post('/v1/messaging/providers/mailgun')
|
||||||
App::patch('/v1/messaging/providers/:id/mailgun')
|
App::patch('/v1/messaging/providers/:id/mailgun')
|
||||||
->desc('Update Mailgun Provider')
|
->desc('Update Mailgun Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.update')
|
->label('audits.event', 'messages.providers.update')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -166,14 +166,13 @@ App::patch('/v1/messaging/providers/:id/mailgun')
|
||||||
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
||||||
|
|
||||||
$response
|
$response
|
||||||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
|
||||||
->dynamic($provider, Response::MODEL_PROVIDER);
|
->dynamic($provider, Response::MODEL_PROVIDER);
|
||||||
});
|
});
|
||||||
|
|
||||||
App::post('/v1/messaging/providers/sendgrid')
|
App::post('/v1/messaging/providers/sendgrid')
|
||||||
->desc('Create Sendgrid Provider')
|
->desc('Create Sendgrid Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.create')
|
->label('audits.event', 'messages.providers.create')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -203,7 +202,7 @@ App::post('/v1/messaging/providers/sendgrid')
|
||||||
App::patch('/v1/messaging/providers/:id/sendgrid')
|
App::patch('/v1/messaging/providers/:id/sendgrid')
|
||||||
->desc('Update Sendgrid Provider')
|
->desc('Update Sendgrid Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.update')
|
->label('audits.event', 'messages.providers.update')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -243,7 +242,6 @@ App::patch('/v1/messaging/providers/:id/sendgrid')
|
||||||
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
||||||
|
|
||||||
$response
|
$response
|
||||||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
|
||||||
->dynamic($provider, Response::MODEL_PROVIDER);
|
->dynamic($provider, Response::MODEL_PROVIDER);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -253,7 +251,7 @@ App::patch('/v1/messaging/providers/:id/sendgrid')
|
||||||
App::post('/v1/messaging/providers/msg91')
|
App::post('/v1/messaging/providers/msg91')
|
||||||
->desc('Create Msg91 Provider')
|
->desc('Create Msg91 Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.create')
|
->label('audits.event', 'messages.providers.create')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -285,7 +283,7 @@ App::post('/v1/messaging/providers/msg91')
|
||||||
App::patch('/v1/messaging/providers/:id/msg91')
|
App::patch('/v1/messaging/providers/:id/msg91')
|
||||||
->desc('Update Msg91 Provider')
|
->desc('Update Msg91 Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.update')
|
->label('audits.event', 'messages.providers.update')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -333,14 +331,13 @@ App::patch('/v1/messaging/providers/:id/msg91')
|
||||||
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
||||||
|
|
||||||
$response
|
$response
|
||||||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
|
||||||
->dynamic($provider, Response::MODEL_PROVIDER);
|
->dynamic($provider, Response::MODEL_PROVIDER);
|
||||||
});
|
});
|
||||||
|
|
||||||
App::post('/v1/messaging/providers/telesign')
|
App::post('/v1/messaging/providers/telesign')
|
||||||
->desc('Create Telesign Provider')
|
->desc('Create Telesign Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.create')
|
->label('audits.event', 'messages.providers.create')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -372,7 +369,7 @@ App::post('/v1/messaging/providers/telesign')
|
||||||
App::patch('/v1/messaging/providers/:id/telesign')
|
App::patch('/v1/messaging/providers/:id/telesign')
|
||||||
->desc('Update Telesign Provider')
|
->desc('Update Telesign Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.update')
|
->label('audits.event', 'messages.providers.update')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -420,14 +417,13 @@ App::patch('/v1/messaging/providers/:id/telesign')
|
||||||
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
||||||
|
|
||||||
$response
|
$response
|
||||||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
|
||||||
->dynamic($provider, Response::MODEL_PROVIDER);
|
->dynamic($provider, Response::MODEL_PROVIDER);
|
||||||
});
|
});
|
||||||
|
|
||||||
App::post('/v1/messaging/providers/textmagic')
|
App::post('/v1/messaging/providers/textmagic')
|
||||||
->desc('Create Textmagic Provider')
|
->desc('Create Textmagic Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.create')
|
->label('audits.event', 'messages.providers.create')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -459,7 +455,7 @@ App::post('/v1/messaging/providers/textmagic')
|
||||||
App::patch('/v1/messaging/providers/:id/textmagic')
|
App::patch('/v1/messaging/providers/:id/textmagic')
|
||||||
->desc('Update Textmagic Provider')
|
->desc('Update Textmagic Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.update')
|
->label('audits.event', 'messages.providers.update')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -507,14 +503,13 @@ App::patch('/v1/messaging/providers/:id/textmagic')
|
||||||
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
||||||
|
|
||||||
$response
|
$response
|
||||||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
|
||||||
->dynamic($provider, Response::MODEL_PROVIDER);
|
->dynamic($provider, Response::MODEL_PROVIDER);
|
||||||
});
|
});
|
||||||
|
|
||||||
App::post('/v1/messaging/providers/twilio')
|
App::post('/v1/messaging/providers/twilio')
|
||||||
->desc('Create Twilio Provider')
|
->desc('Create Twilio Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.create')
|
->label('audits.event', 'messages.providers.create')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -546,7 +541,7 @@ App::post('/v1/messaging/providers/twilio')
|
||||||
App::patch('/v1/messaging/providers/:id/twilio')
|
App::patch('/v1/messaging/providers/:id/twilio')
|
||||||
->desc('Update Twilio Provider')
|
->desc('Update Twilio Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.update')
|
->label('audits.event', 'messages.providers.update')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -594,14 +589,13 @@ App::patch('/v1/messaging/providers/:id/twilio')
|
||||||
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
||||||
|
|
||||||
$response
|
$response
|
||||||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
|
||||||
->dynamic($provider, Response::MODEL_PROVIDER);
|
->dynamic($provider, Response::MODEL_PROVIDER);
|
||||||
});
|
});
|
||||||
|
|
||||||
App::post('/v1/messaging/providers/vonage')
|
App::post('/v1/messaging/providers/vonage')
|
||||||
->desc('Create Vonage Provider')
|
->desc('Create Vonage Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.create')
|
->label('audits.event', 'messages.providers.create')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -633,7 +627,7 @@ App::post('/v1/messaging/providers/vonage')
|
||||||
App::patch('/v1/messaging/providers/:id/vonage')
|
App::patch('/v1/messaging/providers/:id/vonage')
|
||||||
->desc('Update Vonage Provider')
|
->desc('Update Vonage Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.update')
|
->label('audits.event', 'messages.providers.update')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -681,7 +675,6 @@ App::patch('/v1/messaging/providers/:id/vonage')
|
||||||
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
||||||
|
|
||||||
$response
|
$response
|
||||||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
|
||||||
->dynamic($provider, Response::MODEL_PROVIDER);
|
->dynamic($provider, Response::MODEL_PROVIDER);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -691,7 +684,7 @@ App::patch('/v1/messaging/providers/:id/vonage')
|
||||||
App::post('/v1/messaging/providers/fcm')
|
App::post('/v1/messaging/providers/fcm')
|
||||||
->desc('Create FCM Provider')
|
->desc('Create FCM Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.create')
|
->label('audits.event', 'messages.providers.create')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -721,7 +714,7 @@ App::post('/v1/messaging/providers/fcm')
|
||||||
App::patch('/v1/messaging/providers/:id/fcm')
|
App::patch('/v1/messaging/providers/:id/fcm')
|
||||||
->desc('Update FCM Provider')
|
->desc('Update FCM Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.update')
|
->label('audits.event', 'messages.providers.update')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -759,14 +752,13 @@ App::patch('/v1/messaging/providers/:id/fcm')
|
||||||
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
||||||
|
|
||||||
$response
|
$response
|
||||||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
|
||||||
->dynamic($provider, Response::MODEL_PROVIDER);
|
->dynamic($provider, Response::MODEL_PROVIDER);
|
||||||
});
|
});
|
||||||
|
|
||||||
App::post('/v1/messaging/providers/apns')
|
App::post('/v1/messaging/providers/apns')
|
||||||
->desc('Create APNS Provider')
|
->desc('Create APNS Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.create')
|
->label('audits.event', 'messages.providers.create')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -804,7 +796,7 @@ App::post('/v1/messaging/providers/apns')
|
||||||
App::patch('/v1/messaging/providers/:id/apns')
|
App::patch('/v1/messaging/providers/:id/apns')
|
||||||
->desc('Update APNS Provider')
|
->desc('Update APNS Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.update')
|
->label('audits.event', 'messages.providers.update')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
@ -858,27 +850,25 @@ App::patch('/v1/messaging/providers/:id/apns')
|
||||||
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
$dbForProject->deleteCachedDocument('providers', $provider->getId());
|
||||||
|
|
||||||
$response
|
$response
|
||||||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
|
||||||
->dynamic($provider, Response::MODEL_PROVIDER);
|
->dynamic($provider, Response::MODEL_PROVIDER);
|
||||||
});
|
});
|
||||||
|
|
||||||
App::delete('/v1/messaging/providers/:id')
|
App::delete('/v1/messaging/providers/:id')
|
||||||
->desc('Delete Provider')
|
->desc('Delete Provider')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.providers.[id].delete')
|
->label('audits.event', 'messages.providers.delete')
|
||||||
->label('scope', 'providers.write')
|
->label('scope', 'providers.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
->label('sdk.method', 'deleteProvider')
|
->label('sdk.method', 'deleteProvider')
|
||||||
->label('sdk.description', '/docs/references/messaging/delete-provider.md')
|
->label('sdk.description', '/docs/references/messaging/delete-provider.md')
|
||||||
->label('sdk.response.code', Response::STATUS_CODE_OK)
|
->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT)
|
||||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||||
->label('sdk.response.model', Response::MODEL_NONE)
|
->label('sdk.response.model', Response::MODEL_NONE)
|
||||||
->param('id', '', new UID(), 'Provider ID.')
|
->param('id', '', new UID(), 'Provider ID.')
|
||||||
->inject('response')
|
|
||||||
->inject('dbForProject')
|
->inject('dbForProject')
|
||||||
->inject('events')
|
->inject('response')
|
||||||
->action(function (string $id, Response $response, Database $dbForProject) {
|
->action(function (string $id, Database $dbForProject, Response $response) {
|
||||||
$provider = $dbForProject->getDocument('providers', $id);
|
$provider = $dbForProject->getDocument('providers', $id);
|
||||||
|
|
||||||
if ($provider->isEmpty()) {
|
if ($provider->isEmpty()) {
|
||||||
|
@ -894,7 +884,7 @@ App::delete('/v1/messaging/providers/:id')
|
||||||
App::post('/v1/messaging/messages/email')
|
App::post('/v1/messaging/messages/email')
|
||||||
->desc('Send an email.')
|
->desc('Send an email.')
|
||||||
->groups(['api', 'messaging'])
|
->groups(['api', 'messaging'])
|
||||||
->label('event', 'messages.create')
|
->label('audits.event', 'messages.create')
|
||||||
->label('scope', 'messages.write')
|
->label('scope', 'messages.write')
|
||||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN, APP_AUTH_TYPE_KEY])
|
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN, APP_AUTH_TYPE_KEY])
|
||||||
->label('sdk.namespace', 'messaging')
|
->label('sdk.namespace', 'messaging')
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
<directory>./tests/e2e/Services/Teams</directory>
|
<directory>./tests/e2e/Services/Teams</directory>
|
||||||
<directory>./tests/e2e/Services/Users</directory>
|
<directory>./tests/e2e/Services/Users</directory>
|
||||||
<directory>./tests/e2e/Services/Webhooks</directory>
|
<directory>./tests/e2e/Services/Webhooks</directory>
|
||||||
|
<directory>./tests/e2e/Services/Messaging</directory>
|
||||||
<file>./tests/e2e/Services/Functions/FunctionsBase.php</file>
|
<file>./tests/e2e/Services/Functions/FunctionsBase.php</file>
|
||||||
<file>./tests/e2e/Services/Functions/FunctionsCustomServerTest.php</file>
|
<file>./tests/e2e/Services/Functions/FunctionsCustomServerTest.php</file>
|
||||||
<file>./tests/e2e/Services/Functions/FunctionsCustomClientTest.php</file>
|
<file>./tests/e2e/Services/Functions/FunctionsCustomClientTest.php</file>
|
||||||
|
|
|
@ -81,6 +81,10 @@ trait ProjectCustom
|
||||||
'locale.read',
|
'locale.read',
|
||||||
'avatars.read',
|
'avatars.read',
|
||||||
'health.read',
|
'health.read',
|
||||||
|
'providers.read',
|
||||||
|
'providers.write',
|
||||||
|
'messages.read',
|
||||||
|
'messages.write',
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
187
tests/e2e/Services/Messaging/MessagingServerTest.php
Normal file
187
tests/e2e/Services/Messaging/MessagingServerTest.php
Normal file
|
@ -0,0 +1,187 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\E2E\Services\Messaging;
|
||||||
|
|
||||||
|
use Tests\E2E\Client;
|
||||||
|
use Tests\E2E\Scopes\ProjectCustom;
|
||||||
|
use Tests\E2E\Scopes\Scope;
|
||||||
|
use Tests\E2E\Scopes\SideConsole;
|
||||||
|
|
||||||
|
class MessagingServerTest extends Scope
|
||||||
|
{
|
||||||
|
use ProjectCustom;
|
||||||
|
use SideConsole;
|
||||||
|
|
||||||
|
public function testCreateProviders(): array
|
||||||
|
{
|
||||||
|
$providersParams = [
|
||||||
|
'sendgrid' => [
|
||||||
|
'name' => 'Sengrid1',
|
||||||
|
'apiKey' => 'my-apikey',
|
||||||
|
],
|
||||||
|
'mailgun' => [
|
||||||
|
'name' => 'Mailgun1',
|
||||||
|
'apiKey' => 'my-apikey',
|
||||||
|
'domain' => 'my-domain',
|
||||||
|
],
|
||||||
|
'twilio' => [
|
||||||
|
'name' => 'Twilio1',
|
||||||
|
'accountSid' => 'my-accountSid',
|
||||||
|
'authToken' => 'my-authToken',
|
||||||
|
],
|
||||||
|
'telesign' => [
|
||||||
|
'name' => 'Telesign1',
|
||||||
|
'username' => 'my-username',
|
||||||
|
'password' => 'my-password',
|
||||||
|
],
|
||||||
|
'textmagic' => [
|
||||||
|
'name' => 'Textmagic1',
|
||||||
|
'username' => 'my-username',
|
||||||
|
'apiKey' => 'my-apikey',
|
||||||
|
],
|
||||||
|
'msg91' => [
|
||||||
|
'name' => 'Ms91-1',
|
||||||
|
'senderId' => 'my-senderid',
|
||||||
|
'authKey' => 'my-authkey',
|
||||||
|
],
|
||||||
|
'vonage' => [
|
||||||
|
'name' => 'Vonage1',
|
||||||
|
'apiKey' => 'my-apikey',
|
||||||
|
'apiSecret' => 'my-apisecret',
|
||||||
|
],
|
||||||
|
'fcm' => [
|
||||||
|
'name' => 'FCM1',
|
||||||
|
'serverKey' => 'my-serverkey',
|
||||||
|
],
|
||||||
|
'apns' => [
|
||||||
|
'name' => 'APNS1',
|
||||||
|
'authKey' => 'my-authkey',
|
||||||
|
'authKeyId' => 'my-authkeyid',
|
||||||
|
'teamId' => 'my-teamid',
|
||||||
|
'bundleId' => 'my-bundleid',
|
||||||
|
'endpoint' => 'my-endpoint',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
$providers = [];
|
||||||
|
|
||||||
|
foreach (\array_keys($providersParams) as $key) {
|
||||||
|
$response = $this->client->call(Client::METHOD_POST, '/messaging/providers/'.$key, [
|
||||||
|
'content-type' => 'application/json',
|
||||||
|
'x-appwrite-project' => $this->getProject()['$id'],
|
||||||
|
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||||
|
], $providersParams[$key]);
|
||||||
|
\array_push($providers, $response['body']);
|
||||||
|
$this->assertEquals(201, $response['headers']['status-code']);
|
||||||
|
$this->assertEquals($providersParams[$key]['name'], $response['body']['name']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $providers;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @depends testCreateProviders
|
||||||
|
*/
|
||||||
|
public function testUpdateProviders(array $providers): array
|
||||||
|
{
|
||||||
|
$providersParams = [
|
||||||
|
'sendgrid' => [
|
||||||
|
'name' => 'Sengrid2',
|
||||||
|
'apiKey' => 'my-apikey',
|
||||||
|
],
|
||||||
|
'mailgun' => [
|
||||||
|
'name' => 'Mailgun2',
|
||||||
|
'apiKey' => 'my-apikey',
|
||||||
|
'domain' => 'my-domain',
|
||||||
|
],
|
||||||
|
'twilio' => [
|
||||||
|
'name' => 'Twilio2',
|
||||||
|
'accountSid' => 'my-accountSid',
|
||||||
|
'authToken' => 'my-authToken',
|
||||||
|
],
|
||||||
|
'telesign' => [
|
||||||
|
'name' => 'Telesign2',
|
||||||
|
'username' => 'my-username',
|
||||||
|
'password' => 'my-password',
|
||||||
|
],
|
||||||
|
'textmagic' => [
|
||||||
|
'name' => 'Textmagic2',
|
||||||
|
'username' => 'my-username',
|
||||||
|
'apiKey' => 'my-apikey',
|
||||||
|
],
|
||||||
|
'msg91' => [
|
||||||
|
'name' => 'Ms91-2',
|
||||||
|
'senderId' => 'my-senderid',
|
||||||
|
'authKey' => 'my-authkey',
|
||||||
|
],
|
||||||
|
'vonage' => [
|
||||||
|
'name' => 'Vonage2',
|
||||||
|
'apiKey' => 'my-apikey',
|
||||||
|
'apiSecret' => 'my-apisecret',
|
||||||
|
],
|
||||||
|
'fcm' => [
|
||||||
|
'name' => 'FCM2',
|
||||||
|
'serverKey' => 'my-serverkey',
|
||||||
|
],
|
||||||
|
'apns' => [
|
||||||
|
'name' => 'APNS2',
|
||||||
|
'authKey' => 'my-authkey',
|
||||||
|
'authKeyId' => 'my-authkeyid',
|
||||||
|
'teamId' => 'my-teamid',
|
||||||
|
'bundleId' => 'my-bundleid',
|
||||||
|
'endpoint' => 'my-endpoint',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
foreach (\array_keys($providersParams) as $index => $key) {
|
||||||
|
$response = $this->client->call(Client::METHOD_PATCH, '/messaging/providers/'. $providers[$index]['$id'] . '/' . $key, [
|
||||||
|
'content-type' => 'application/json',
|
||||||
|
'x-appwrite-project' => $this->getProject()['$id'],
|
||||||
|
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||||
|
], $providersParams[$key]);
|
||||||
|
$providers[$index] = $response['body'];
|
||||||
|
$this->assertEquals(200, $response['headers']['status-code']);
|
||||||
|
$this->assertEquals($providersParams[$key]['name'], $response['body']['name']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $providers;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @depends testUpdateProviders
|
||||||
|
*/
|
||||||
|
public function testListProviders(array $providers) {
|
||||||
|
$response = $this->client->call(Client::METHOD_GET, '/messaging/providers/', [
|
||||||
|
'content-type' => 'application/json',
|
||||||
|
'x-appwrite-project' => $this->getProject()['$id'],
|
||||||
|
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||||
|
]);
|
||||||
|
$this->assertEquals(200, $response['headers']['status-code']);
|
||||||
|
$this->assertEquals(\count($providers), $response['body']['total']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @depends testUpdateProviders
|
||||||
|
*/
|
||||||
|
public function testGetProvider(array $providers) {
|
||||||
|
$response = $this->client->call(Client::METHOD_GET, '/messaging/providers/' .$providers[0]['$id'], [
|
||||||
|
'content-type' => 'application/json',
|
||||||
|
'x-appwrite-project' => $this->getProject()['$id'],
|
||||||
|
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||||
|
]);
|
||||||
|
$this->assertEquals(200, $response['headers']['status-code']);
|
||||||
|
$this->assertEquals($providers[0]['name'], $response['body']['name']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @depends testUpdateProviders
|
||||||
|
*/
|
||||||
|
public function testDeleteProvider(array $providers) {
|
||||||
|
foreach ($providers as $provider) {
|
||||||
|
$response = $this->client->call(Client::METHOD_DELETE, '/messaging/providers/'. $provider['$id'], [
|
||||||
|
'content-type' => 'application/json',
|
||||||
|
'x-appwrite-project' => $this->getProject()['$id'],
|
||||||
|
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||||
|
]);
|
||||||
|
$this->assertEquals(204, $response['headers']['status-code']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue