Skip to content

Commit c467885

Browse files
Added WhatsApp message context (#60)
* Added WhatsApp MessageContext trait * Updated version to 3.0.1
1 parent 9580818 commit c467885

File tree

10 files changed

+59
-25
lines changed

10 files changed

+59
-25
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "cmdotcom/text-sdk-php",
33
"description": "PHP SDK to send messages with CM.com",
44
"type": "library",
5-
"version": "3.0.0",
5+
"version": "3.0.1",
66
"keywords": ["sms","cm.com","rcs","whatsapp","viber","line","wechat","imessage","twitter","instagram"],
77
"homepage": "https://www.cm.com/products/text/",
88
"license": "MIT",

src/CMText/RichContent/Messages/ContactsMessage.php

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,32 @@
33
namespace CMText\RichContent\Messages;
44

55
use CMText\RichContent\Common\Contact;
6+
use CMText\RichContent\Messages\WhatsApp\WhatsAppMessageContextTrait;
67

78
/**
89
* Class ContactsMessage
910
* @package CMText\RichContent\Messages
1011
*/
1112
class ContactsMessage implements IRichMessage
1213
{
14+
use WhatsAppMessageContextTrait;
15+
1316
/**
14-
* @var \CMText\RichContent\Common\Contact[]
17+
* @var Contact[]
1518
*/
16-
private $contacts = [];
19+
public $contacts = [];
1720

1821
/**
1922
* ContactsMessage constructor.
20-
* @param \CMText\RichContent\Common\Contact $Contact
23+
* @param Contact $Contact
2124
*/
2225
public function __construct(Contact $Contact)
2326
{
2427
$this->addContact($Contact);
2528
}
2629

2730
/**
28-
* @param \CMText\RichContent\Common\Contact $Contact
31+
* @param Contact $Contact
2932
*/
3033
public function addContact(Contact $Contact)
3134
{
@@ -38,9 +41,7 @@ public function addContact(Contact $Contact)
3841
#[\ReturnTypeWillChange]
3942
public function jsonSerialize()
4043
{
41-
return (object)[
42-
'contacts' => array_filter($this->contacts),
43-
];
44+
return $this;
4445
}
4546
}
4647

src/CMText/RichContent/Messages/LocationPushMessage.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,20 @@
33
namespace CMText\RichContent\Messages;
44

55
use CMText\RichContent\Common\ViewLocationBase;
6+
use CMText\RichContent\Messages\WhatsApp\WhatsAppMessageContextTrait;
67

78
/**
89
* Class LocationPushMessage
910
* @package CMText\RichContent\Messages
1011
*/
1112
class LocationPushMessage implements IRichMessage
1213
{
14+
use WhatsAppMessageContextTrait;
15+
1316
/**
1417
* @var \CMText\RichContent\Common\ViewLocationBase Location to send.
1518
*/
16-
private $location;
19+
public $location;
1720

1821

1922
/**
@@ -31,8 +34,6 @@ public function __construct(ViewLocationBase $ViewLocation)
3134
#[\ReturnTypeWillChange]
3235
public function jsonSerialize()
3336
{
34-
return (object)[
35-
'location' => $this->location,
36-
];
37+
return $this;
3738
}
3839
}

src/CMText/RichContent/Messages/MediaMessage.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,20 @@
22

33
namespace CMText\RichContent\Messages;
44

5+
use CMText\RichContent\Messages\WhatsApp\WhatsAppMessageContextTrait;
6+
57
/**
68
* Class MediaMessage
79
* @package CMText\RichContent\Messages
810
*/
911
class MediaMessage implements IRichMessage
1012
{
13+
use WhatsAppMessageContextTrait;
1114

1215
/**
1316
* @var \CMText\RichContent\Messages\MediaContent
1417
*/
15-
private $content;
18+
public $media;
1619

1720

1821
/**
@@ -27,15 +30,13 @@ public function __construct(
2730
string $Mimetype
2831
)
2932
{
30-
$this->content = new MediaContent($Name, $Uri, $Mimetype);
33+
$this->media = new MediaContent($Name, $Uri, $Mimetype);
3134
}
3235

3336

3437
#[\ReturnTypeWillChange]
3538
public function jsonSerialize()
3639
{
37-
return (object)[
38-
'media' => $this->content,
39-
];
40+
return $this;
4041
}
4142
}

src/CMText/RichContent/Messages/TemplateMessage.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
namespace CMText\RichContent\Messages;
44

5+
use CMText\RichContent\Messages\WhatsApp\WhatsAppMessageContextTrait;
56
use CMText\RichContent\Templates\TemplateContentBase;
67

78

89
class TemplateMessage implements IRichMessage
910
{
11+
use WhatsAppMessageContextTrait;
1012

1113
public $template;
1214

src/CMText/RichContent/Messages/TextMessage.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,34 @@
22

33
namespace CMText\RichContent\Messages;
44

5+
use CMText\RichContent\Messages\WhatsApp\WhatsAppMessageContextTrait;
6+
57
/**
68
* Class TextMessage
79
* @package CMText\RichContent\Messages
810
*/
911
class TextMessage implements IRichMessage
1012
{
13+
use WhatsAppMessageContextTrait;
1114

1215
/**
1316
* @var string Body text of the message
1417
*/
15-
protected $text;
18+
public $text;
1619

1720

1821
/**
1922
* @var string Instagram message tag (optional)
2023
*/
21-
protected $tag;
24+
public $tag;
2225

2326

2427
/**
2528
* TextMessage constructor.
2629
* @param string $Text
2730
* @param string $Tag
2831
*/
29-
public function __construct(string $Text, string $Tag = '')
32+
public function __construct(string $Text, string $Tag = null)
3033
{
3134
$this->text = $Text;
3235
$this->tag = $Tag;
@@ -36,9 +39,6 @@ public function __construct(string $Text, string $Tag = '')
3639
#[\ReturnTypeWillChange]
3740
public function jsonSerialize()
3841
{
39-
return (object)array_filter([
40-
'text' => $this->text,
41-
'tag' => $this->tag
42-
]);
42+
return $this;
4343
}
4444
}

src/CMText/RichContent/Messages/WhatsApp/WhatsAppInteractiveMessage.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
class WhatsAppInteractiveMessage implements IRichMessage
88
{
9+
use WhatsAppMessageContextTrait;
10+
911
/**
1012
* @var WhatsAppInteractiveContent
1113
*/
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
namespace CMText\RichContent\Messages\WhatsApp;
4+
5+
class WhatsAppMessageContext
6+
{
7+
/**
8+
* @var $message_id string Message ID to which the current message is a reply
9+
*/
10+
public $message_id;
11+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
namespace CMText\RichContent\Messages\WhatsApp;
4+
5+
/**
6+
* Contextual properties of the message.
7+
* Currently only applicable to <see cref="Channel.WhatsApp" />
8+
* Docs: https://developers.cm.com/messaging/docs/whatsapp-inbound#mt-replies-mo
9+
*/
10+
trait WhatsAppMessageContextTrait
11+
{
12+
/**
13+
* @var $context WhatsAppMessageContext
14+
*/
15+
public $context;
16+
}

src/CMText/TextClient.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class TextClient implements ITextClient
3232
/**
3333
* SDK Version constant
3434
*/
35-
const VERSION = '3.0.0';
35+
const VERSION = '3.0.1';
3636

3737

3838
/**

0 commit comments

Comments
 (0)