Skip to content

Commit 68c6e89

Browse files
authored
Merge pull request #12 from iurciuc/master
Help creating datetime for scheduled sendings
2 parents 90cc82f + 184f19b commit 68c6e89

File tree

5 files changed

+122
-70
lines changed

5 files changed

+122
-70
lines changed

README.md

Lines changed: 63 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -15,65 +15,91 @@ $ composer require octopush/sms-api
1515
```php
1616
<?php
1717

18-
$client = new Octopush\Client('*****@example.com', '***API-KEY***');
18+
$client = new Octopush\Client('*****@mail.com', '***API-KEY***');
1919

2020
$request = new Octopush\Request\SmsCampaign\SendSmsCampaignRequest();
21-
$request->setPurpose(Octopush\Request\SmsCampaign\SendSmsCampaignRequest::ALERT_TRANSACTIONAL);
2221
$request->setRecipients([
2322
[
24-
'phone_number' => '+336********',
23+
'phone_number' => '+33600000000',
2524
'param1' => 'Alex',
2625
]
2726
]);
2827
$request->setSender('AnySender');
29-
$request->setText('Hello, {param1}');
28+
$request->setText('Hello {param1}, HAPPY NEW YEAR');
3029
$request->setType(Octopush\Constant\TypeEnum::SMS_PREMIUM);
30+
31+
// ---------------------------------
32+
// optional
33+
// ---------------------------------
34+
$request->setPurpose(Octopush\Request\SmsCampaign\SendSmsCampaignRequest::ALERT_TRANSACTIONAL);
3135
$request->setWithReplies(false);
32-
$request->setSendAt(new DateTimeImmutable('+1 hour'));
36+
37+
$date = new DateTimeImmutable('2021-01-01 00:01:00');
38+
$isoDateWithTimeZone = $date->format(DATE_ISO8601); // 2021-01-01T00:01:00+0100
39+
$request->setSendAt($isoDateWithTimeZone); // also works with "2021-01-01 00:01:00", (Central European TimeZone by default)
40+
// ---------------------------------
3341

3442
$content = $client->send($request);
43+
44+
// ---------------------------------
45+
// Result example:
46+
// ---------------------------------
3547
```
3648

3749
```
38-
Array
39-
(
40-
[sms_ticket] => sms_5f6c4e9fcd599
41-
[number_of_contacts] => 1
42-
[total_cost] => 0.062
43-
)
50+
{
51+
"sms_ticket": "sms_5fec89fe97109",
52+
"number_of_contacts": 1,
53+
"total_cost": 0.0333,
54+
"number_of_sms_needed": 1,
55+
"residual_credit": 99.5
56+
}
4457
```
4558

4659
#### Sending a Vocal SMS Campaign
4760

4861
```php
4962
<?php
5063

51-
$client = new Octopush\Client('*****@example.com', '***API-KEY***');
64+
$client = new Octopush\Client('*****@mail.com', '***API-KEY***');
5265

5366
$request = new Octopush\Request\VocalCampaign\SendVocalCampaignRequest();
54-
$request->setPurpose(Octopush\Request\SmsCampaign\SendSmsCampaignRequest::ALERT_TRANSACTIONAL);
5567
$request->setRecipients([
5668
[
57-
'phone_number' => '+336********',
69+
'phone_number' => '+33600000000',
5870
]
5971
]);
6072
$request->setSender('AnySender');
61-
$request->setText('Hello!');
73+
$request->setText('Hello, HAPPY NEW YEAR');
6274
$request->setType(Octopush\Constant\TypeEnum::VOCAL_SMS);
6375
$request->setVoiceGender('female');
6476
$request->setVoiceLanguage('fr-FR');
65-
$request->setSendAt(new DateTimeImmutable('+1 hour'));
77+
78+
// ---------------------------------
79+
// optional
80+
// ---------------------------------
81+
$request->setPurpose(Octopush\Request\VocalCampaign\SendVocalCampaignRequest::ALERT_TRANSACTIONAL);
82+
83+
$date = new DateTimeImmutable('2021-01-01 00:01:00');
84+
$isoDateWithTimeZone = $date->format(DATE_ISO8601); // 2021-01-01T00:01:00+0100
85+
$request->setSendAt($isoDateWithTimeZone); // also works with "2021-01-01 00:01:00", (Central European TimeZone by default)
86+
// ---------------------------------
6687

6788
$content = $client->send($request);
89+
90+
// ---------------------------------
91+
// Result example:
92+
// ---------------------------------
6893
```
6994

7095
```
71-
Array
72-
(
73-
[vocal_ticket] => vocal_5f6c4e4a2afc9
74-
[number_of_contacts] => 1
75-
[total_cost] => 0.1
76-
)
96+
{
97+
"vocal_ticket": "vocal_5fed928fda524",
98+
"number_of_contacts": 1,
99+
"total_cost": 0.03,
100+
"residual_credit": 99.5,
101+
"estimated_duration": 30
102+
}
77103
```
78104

79105
#### Checking your credit
@@ -89,23 +115,24 @@ $request->setCountryCode('FR');
89115
$request->setWithDetails(true);
90116

91117
$content = $client->send($request);
118+
119+
// ---------------------------------
120+
// Result example:
121+
// ---------------------------------
92122
```
93123

94124
```
95-
Array
96-
(
97-
[amount] => 1074
98-
[unit] => vocal_sms
99-
[wallet_packs] => Array
100-
(
101-
[0] => Array
102-
(
103-
[id] => 12dda478-fc11-51eb-813c-024417120004
104-
[credit] => 10.144
105-
[expiration_date] => 2030-09-21T15:55:14+02:00
106-
)
107-
)
108-
)
125+
{
126+
"amount": 10,
127+
"unit": "vocal_sms",
128+
"wallet_packs": [
129+
{
130+
"id": "1d234c18-396c-12eb-b80e-02455c12550a",
131+
"credit": 10,
132+
"expiration_date": "2030-12-08T16:45:14+01:00"
133+
}
134+
]
135+
}
109136
```
110137

111138
## cURL examples

examples/send-sms-campaign.php

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,39 @@
55
$client = new Octopush\Client('*****@mail.com', '***API-KEY***');
66

77
$request = new Octopush\Request\SmsCampaign\SendSmsCampaignRequest();
8-
$request->setPurpose(Octopush\Request\SmsCampaign\SendSmsCampaignRequest::ALERT_TRANSACTIONAL);
98
$request->setRecipients([
109
[
1110
'phone_number' => '+33600000000',
1211
'param1' => 'Alex',
1312
]
1413
]);
1514
$request->setSender('AnySender');
16-
$request->setText('Hello, {param1}');
15+
$request->setText('Hello {param1}, HAPPY NEW YEAR');
1716
$request->setType(Octopush\Constant\TypeEnum::SMS_PREMIUM);
17+
18+
// ---------------------------------
19+
// optional
20+
// ---------------------------------
21+
$request->setPurpose(Octopush\Request\SmsCampaign\SendSmsCampaignRequest::ALERT_TRANSACTIONAL);
1822
$request->setWithReplies(false);
19-
$request->setSendAt(new DateTimeImmutable('+1 hour'));
23+
24+
$date = new DateTimeImmutable('2021-01-01 00:01:00');
25+
$isoDateWithTimeZone = $date->format(DATE_ISO8601); // 2021-01-01T00:01:00+0100
26+
$request->setSendAt($isoDateWithTimeZone); // also works with "2021-01-01 00:01:00", (Central European TimeZone by default)
27+
// ---------------------------------
2028

2129
$content = $client->send($request);
30+
31+
// ---------------------------------
32+
// Result example:
33+
// ---------------------------------
2234
/*
23-
Array
24-
(
25-
[sms_ticket] => sms_5f6c4e9fcd599
26-
[number_of_contacts] => 1
27-
[total_cost] => 0.062
28-
)
35+
{
36+
"sms_ticket": "sms_5fec89fe97109",
37+
"number_of_contacts": 1,
38+
"total_cost": 0.0333,
39+
"number_of_sms_needed": 1,
40+
"residual_credit": 99.5
41+
}
2942
*/
43+
// ---------------------------------

examples/send-vocal-campaign.php

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,39 @@
55
$client = new Octopush\Client('*****@mail.com', '***API-KEY***');
66

77
$request = new Octopush\Request\VocalCampaign\SendVocalCampaignRequest();
8-
$request->setPurpose(Octopush\Request\SmsCampaign\SendSmsCampaignRequest::ALERT_TRANSACTIONAL);
98
$request->setRecipients([
109
[
1110
'phone_number' => '+33600000000',
1211
]
1312
]);
1413
$request->setSender('AnySender');
15-
$request->setText('Hello!');
14+
$request->setText('Hello, HAPPY NEW YEAR');
1615
$request->setType(Octopush\Constant\TypeEnum::VOCAL_SMS);
1716
$request->setVoiceGender('female');
1817
$request->setVoiceLanguage('fr-FR');
19-
$request->setSendAt(new DateTimeImmutable('+1 hour'));
18+
19+
// ---------------------------------
20+
// optional
21+
// ---------------------------------
22+
$request->setPurpose(Octopush\Request\VocalCampaign\SendVocalCampaignRequest::ALERT_TRANSACTIONAL);
23+
24+
$date = new DateTimeImmutable('2021-01-01 00:01:00');
25+
$isoDateWithTimeZone = $date->format(DATE_ISO8601); // 2021-01-01T00:01:00+0100
26+
$request->setSendAt($isoDateWithTimeZone); // also works with "2021-01-01 00:01:00", (Central European TimeZone by default)
27+
// ---------------------------------
2028

2129
$content = $client->send($request);
30+
31+
// ---------------------------------
32+
// Result example:
33+
// ---------------------------------
2234
/*
23-
Array
24-
(
25-
[vocal_ticket] => vocal_5f6c4e4a2afc9
26-
[number_of_contacts] => 1
27-
[total_cost] => 0.1
28-
)
35+
{
36+
"vocal_ticket": "vocal_5fed928fda524",
37+
"number_of_contacts": 1,
38+
"total_cost": 0.03,
39+
"residual_credit": 99.5,
40+
"estimated_duration": 30
41+
}
2942
*/
43+
// ---------------------------------

src/Request/SmsCampaign/SendSmsCampaignRequest.php

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
namespace Octopush\Request\SmsCampaign;
66

7-
use DateTime;
8-
use DateTimeImmutable;
97
use Octopush\Constant\HttpMethodEnum;
108
use Octopush\Request\BaseRequest;
119

@@ -34,7 +32,7 @@ class SendSmsCampaignRequest extends BaseRequest
3432
/** @var bool */
3533
private $withReplies;
3634

37-
/** @var DateTimeImmutable */
35+
/** @var string */
3836
private $sendAt;
3937

4038
public function __construct()
@@ -56,7 +54,7 @@ public function getQueryArray(): array
5654
'purpose' => $this->purpose,
5755
'sender' => $this->sender,
5856
'with_replies' => $this->withReplies,
59-
'send_at' => $this->sendAt->format(DateTime::ATOM),
57+
'send_at' => $this->sendAt,
6058
],
6159
];
6260

@@ -160,17 +158,17 @@ public function setWithReplies(bool $withReplies): void
160158
}
161159

162160
/**
163-
* @return DateTimeImmutable
161+
* @return string
164162
*/
165-
public function getSendAt(): DateTimeImmutable
163+
public function getSendAt(): string
166164
{
167165
return $this->sendAt;
168166
}
169167

170168
/**
171-
* @param DateTimeImmutable $sendAt
169+
* @param string $sendAt
172170
*/
173-
public function setSendAt(DateTimeImmutable $sendAt): void
171+
public function setSendAt(string $sendAt): void
174172
{
175173
$this->sendAt = $sendAt;
176174
}

src/Request/VocalCampaign/SendVocalCampaignRequest.php

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
namespace Octopush\Request\VocalCampaign;
66

7-
use DateTime;
8-
use DateTimeImmutable;
97
use Octopush\Constant\HttpMethodEnum;
108
use Octopush\Request\BaseRequest;
119

@@ -37,7 +35,7 @@ class SendVocalCampaignRequest extends BaseRequest
3735
/** @var string */
3836
private $voiceLanguage;
3937

40-
/** @var DateTimeImmutable */
38+
/** @var string */
4139
private $sendAt;
4240

4341
public function __construct()
@@ -60,7 +58,7 @@ public function getQueryArray(): array
6058
'sender' => $this->sender,
6159
'voice_gender' => $this->voiceGender,
6260
'voice_language' => $this->voiceLanguage,
63-
'send_at' => $this->sendAt->format(DateTime::ATOM),
61+
'send_at' => $this->sendAt,
6462
],
6563
];
6664

@@ -148,18 +146,19 @@ public function setSender(string $sender): void
148146
}
149147

150148
/**
151-
* @return DateTimeImmutable
149+
* @return string
152150
*/
153-
public function getSendAt(): DateTimeImmutable
151+
public function getSendAt(): string
154152
{
155153
return $this->sendAt;
156154
}
157155

158156
/**
159-
* @param DateTimeImmutable $sendAt
157+
* @param string $sendAt
160158
*/
161-
public function setSendAt(DateTimeImmutable $sendAt): void
159+
public function setSendAt(string $sendAt): void
162160
{
161+
$date = new \DateTime($sendAt);
163162
$this->sendAt = $sendAt;
164163
}
165164

0 commit comments

Comments
 (0)