public function RouteSubscriber::routes in SMS Framework 8
Same name and namespace in other branches
- 2.x src/Routing/RouteSubscriber.php \Drupal\sms\Routing\RouteSubscriber::routes()
- 2.1.x src/Routing/RouteSubscriber.php \Drupal\sms\Routing\RouteSubscriber::routes()
Returns a set of route objects.
Return value
\Symfony\Component\Routing\RouteCollection A route collection.
1 string reference to 'RouteSubscriber::routes'
File
- src/
Routing/ RouteSubscriber.php, line 50
Class
- RouteSubscriber
- Subscriber for SMS Framework routes.
Namespace
Drupal\sms\RoutingCode
public function routes() {
$sms_settings = $this->configFactory
->get('sms.settings');
$collection = new RouteCollection();
// Phone number verification.
$path_verify = $sms_settings
->get('page.verify');
// String length must include at least a slash + another character.
if (Unicode::strlen($path_verify) >= 2) {
$collection
->add('sms.phone.verify', new Route($path_verify, [
'_form' => '\\Drupal\\sms\\Form\\VerifyPhoneNumberForm',
'_title' => 'Verify a phone number',
], [
'_permission' => 'sms verify phone number',
]));
}
/** @var \Drupal\sms\Entity\SmsGatewayInterface $gateway */
foreach (SmsGateway::loadMultiple() as $id => $gateway) {
if ($gateway
->supportsReportsPush()) {
$path = $gateway
->getPushReportPath();
if (Unicode::strlen($path) >= 2 && Unicode::substr($path, 0, 1) == '/') {
$route = (new Route($path))
->setDefault('_controller', '\\Drupal\\sms\\DeliveryReportController::processDeliveryReport')
->setDefault('_sms_gateway_push_endpoint', $id)
->setRequirement('_sms_gateway_supports_pushed_reports', 'TRUE');
$collection
->add('sms.delivery_report.receive.' . $id, $route);
}
}
if ($gateway
->autoCreateIncomingRoute()) {
$path = $gateway
->getPushIncomingPath();
if (Unicode::strlen($path) >= 2 && Unicode::substr($path, 0, 1) == '/') {
$parameters['sms_gateway']['type'] = 'entity:sms_gateway';
$route = (new Route($path))
->setDefault('sms_gateway', $id)
->setDefault('_controller', '\\Drupal\\sms\\SmsIncomingController::processIncoming')
->setRequirement('_access', 'TRUE')
->setOption('parameters', $parameters)
->setMethods([
'POST',
]);
$collection
->add('sms.incoming.receive.' . $id, $route);
}
}
}
return $collection;
}