Skip to content

Commit 581fb31

Browse files
committed
Add MMS support
1 parent e5d320d commit 581fb31

File tree

4 files changed

+109
-1
lines changed

4 files changed

+109
-1
lines changed

README.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,30 @@ class AccountApproved extends Notification
8282
}
8383
```
8484

85-
You can also create a Twilio call:
85+
You can also send an MMS:
86+
87+
``` php
88+
use NotificationChannels\Twilio\TwilioChannel;
89+
use NotificationChannels\Twilio\TwilioMmsMessage;
90+
use Illuminate\Notifications\Notification;
91+
92+
class AccountApproved extends Notification
93+
{
94+
public function via($notifiable)
95+
{
96+
return [TwilioChannel::class];
97+
}
98+
99+
public function toTwilio($notifiable)
100+
{
101+
return (new TwilioMmsMessage())
102+
->content("Your {$notifiable->service} account was approved!")
103+
->mediaUrl("https://picsum.photos/300");
104+
}
105+
}
106+
```
107+
108+
Or create a Twilio call:
86109

87110
``` php
88111
use NotificationChannels\Twilio\TwilioChannel;

src/Twilio.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ protected function sendSmsMessage(TwilioSmsMessage $message, $to)
7070
'body' => trim($message->content),
7171
];
7272

73+
if ($message instanceof TwilioMmsMessage) {
74+
$params['mediaUrl'] = $message->mediaUrl;
75+
}
76+
7377
if ($serviceSid = $this->config->getServiceSid()) {
7478
$params['messagingServiceSid'] = $serviceSid;
7579
}

src/TwilioMmsMessage.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace NotificationChannels\Twilio;
4+
5+
class TwilioMmsMessage extends TwilioSmsMessage
6+
{
7+
/**
8+
* The message media url (for MMS messages).
9+
*
10+
* @var string
11+
*/
12+
public $mediaUrl;
13+
14+
/**
15+
* Set the alphanumeric sender.
16+
*
17+
* @param $url
18+
*/
19+
public function mediaUrl($url)
20+
{
21+
$this->mediaUrl = $url;
22+
}
23+
}

tests/TwilioMmsMessageTest.php

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<?php
2+
3+
namespace NotificationChannels\Twilio\Test;
4+
5+
use NotificationChannels\Twilio\TwilioMmsMessage;
6+
7+
class TwilioMmsMessageTest extends TwilioMessageTest
8+
{
9+
public function setUp()
10+
{
11+
parent::setUp();
12+
13+
$this->message = new TwilioMmsMessage();
14+
}
15+
16+
/** @test */
17+
public function it_can_accept_a_message_when_constructing_a_message()
18+
{
19+
$message = new TwilioMmsMessage('myMessage');
20+
21+
$this->assertEquals('myMessage', $message->content);
22+
}
23+
24+
/** @test */
25+
public function it_provides_a_create_method()
26+
{
27+
$message = TwilioMmsMessage::create('myMessage');
28+
29+
$this->assertEquals('myMessage', $message->content);
30+
}
31+
32+
/** @test */
33+
public function it_sets_alphanumeric_sender()
34+
{
35+
$message = TwilioMmsMessage::create('myMessage');
36+
$message->sender('TestSender');
37+
38+
$this->assertEquals('TestSender', $message->alphaNumSender);
39+
}
40+
41+
/** @test */
42+
public function it_sets_media_url()
43+
{
44+
$message = TwilioMmsMessage::create('myMessage');
45+
$message->mediaUrl('https://picsum.photos/300');
46+
47+
$this->assertEquals('https://picsum.photos/300', $message->mediaUrl);
48+
}
49+
50+
/** @test */
51+
public function it_can_return_the_alphanumeric_sender_if_set()
52+
{
53+
$message = TwilioMmsMessage::create('myMessage');
54+
$message->sender('TestSender');
55+
56+
$this->assertEquals('TestSender', $message->getFrom());
57+
}
58+
}

0 commit comments

Comments
 (0)