From bc9f5370e4122996113ed0b7be3aa4ea99b05415 Mon Sep 17 00:00:00 2001 From: Makarychev Nikolay Date: Mon, 8 Jul 2024 15:12:43 +0500 Subject: [PATCH] Added SmsRu adapter --- src/Utopia/Messaging/Adapter/SMS/SmsRu.php | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/Utopia/Messaging/Adapter/SMS/SmsRu.php diff --git a/src/Utopia/Messaging/Adapter/SMS/SmsRu.php b/src/Utopia/Messaging/Adapter/SMS/SmsRu.php new file mode 100644 index 0000000..c33b30d --- /dev/null +++ b/src/Utopia/Messaging/Adapter/SMS/SmsRu.php @@ -0,0 +1,82 @@ + \ltrim($to, '+'), + $message->getTo() + ); + + $response = new Response($this->getType()); + $result = $this->request( + method: 'POST', + url: 'https://rest.textmagic.com/api/v2/messages', + headers: [ + 'Content-Type: application/x-www-form-urlencoded', + 'X-TM-Username: ' . $this->username, + 'X-TM-Key: '. $this->apiKey, + ], + body: [ + 'text' => $message->getContent(), + 'from' => \ltrim($this->from ?? $message->getFrom(), '+'), + 'phones' => \implode(',', $to), + ], + ); + + if ($result['statusCode'] >= 200 && $result['statusCode'] < 300) { + $response->setDeliveredTo(\count($message->getTo())); + foreach ($message->getTo() as $to) { + $response->addResult($to); + } + } else { + foreach ($message->getTo() as $to) { + if (!\is_null($result['response']['message'] ?? null)) { + $response->addResult($to, $result['response']['message']); + } else { + $response->addResult($to, 'Unknown error'); + } + } + } + + return $response->toArray(); + } +}