class Incoming in SMS Framework 8
Same name and namespace in other branches
- 2.x tests/modules/sms_test_gateway/src/Plugin/SmsGateway/Incoming.php \Drupal\sms_test_gateway\Plugin\SmsGateway\Incoming
- 2.1.x tests/modules/sms_test_gateway/src/Plugin/SmsGateway/Incoming.php \Drupal\sms_test_gateway\Plugin\SmsGateway\Incoming
Defines a gateway supporting incoming route.
Plugin annotation
@SmsGateway(
id = "incoming",
label = @Translation("Incoming"),
incoming = TRUE,
incoming_route = TRUE,
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\sms\Plugin\SmsGatewayPluginBase implements SmsGatewayPluginInterface
- class \Drupal\sms_test_gateway\Plugin\SmsGateway\Incoming
- class \Drupal\sms\Plugin\SmsGatewayPluginBase implements SmsGatewayPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of Incoming
2 string references to 'Incoming'
- SmsFrameworkViewsTest::testSms in tests/
src/ Kernel/ SmsFrameworkViewsTest.php - Tests view of SMS entities with join to recipient table.
- SmsMessageDirection::render in src/
Plugin/ views/ field/ SmsMessageDirection.php - Renders the field.
File
- tests/
modules/ sms_test_gateway/ src/ Plugin/ SmsGateway/ Incoming.php, line 27
Namespace
Drupal\sms_test_gateway\Plugin\SmsGatewayView source
class Incoming extends SmsGatewayPluginBase {
/**
* {@inheritdoc}
*/
public function send(SmsMessageInterface $sms) {
}
/**
* Process an incoming message POST request.
*
* This callback expects a 'messages' POST value containing JSON.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The request object.
* @param \Drupal\sms\Entity\SmsGatewayInterface $sms_gateway
* The gateway instance.
*
* @return \Drupal\sms\SmsProcessingResponse
* A SMS processing response task.
*/
public function processIncoming(Request $request, SmsGatewayInterface $sms_gateway) {
$json = Json::decode($request
->getContent());
$raw_messages = $json['messages'];
// JSON property to SmsMessage method setters mapping.
$sms_properties = [
'sender_number' => 'setSenderNumber',
'message' => 'setMessage',
'recipients' => 'addRecipients',
];
$messages = [];
foreach ($raw_messages as $raw_message) {
$result = new SmsMessageResult();
foreach ($raw_message['recipients'] as $recipient) {
$report = (new SmsDeliveryReport())
->setRecipient($recipient);
$result
->addReport($report);
}
$message = (new SmsMessage())
->setDirection(Direction::INCOMING)
->setGateway($sms_gateway)
->setResult($result);
foreach ($sms_properties as $property => $method) {
if (array_key_exists($property, $raw_message)) {
$value = $raw_message[$property];
call_user_func_array([
$message,
$method,
], [
$value,
]);
}
}
$messages[] = $message;
}
$response = new Response('', 204);
$task = (new SmsProcessingResponse())
->setResponse($response)
->setMessages($messages);
return $task;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
Incoming:: |
public | function | Process an incoming message POST request. | |
Incoming:: |
public | function |
Sends an SMS. Overrides SmsGatewayPluginInterface:: |
|
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
SmsGatewayPluginBase:: |
public | function |
Form constructor. Overrides PluginFormInterface:: |
1 |
SmsGatewayPluginBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
SmsGatewayPluginBase:: |
public | function |
Gets default configuration for this plugin. Overrides ConfigurablePluginInterface:: |
1 |
SmsGatewayPluginBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurablePluginInterface:: |
|
SmsGatewayPluginBase:: |
public | function |
Returns the credit balance available on this gateway. Overrides SmsGatewayPluginInterface:: |
1 |
SmsGatewayPluginBase:: |
public | function |
Gets delivery reports from the gateway. Overrides SmsGatewayPluginInterface:: |
1 |
SmsGatewayPluginBase:: |
public | function |
Parses incoming delivery reports and returns the created delivery reports. Overrides SmsGatewayPluginInterface:: |
1 |
SmsGatewayPluginBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurablePluginInterface:: |
|
SmsGatewayPluginBase:: |
public | function |
Form submission handler. Overrides PluginFormInterface:: |
1 |
SmsGatewayPluginBase:: |
public | function |
Form validation handler. Overrides PluginFormInterface:: |
|
SmsGatewayPluginBase:: |
public | function |
Constructs a new SmsGateway plugin. Overrides PluginBase:: |
1 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |