Skip to content

Commit

Permalink
feature: Call API::sendLongMessageBatch() instead of API::sendBatch()
Browse files Browse the repository at this point in the history
  • Loading branch information
ywchang0612 committed Jun 9, 2022
1 parent c875ff6 commit 6250992
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 23 deletions.
24 changes: 10 additions & 14 deletions src/API.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,28 +37,24 @@ public function __construct(Client $client)
*/
public function sendBatch(array $messages)
{
$body = '';
$longMessages = [];

/** @var Message\Message $message */
foreach ($messages as $i => $message) {
if (!$message instanceof Message\Message) {
throw new InvalidArgumentException();
}

$body .= "[{$i}]\n";
$body .= $message->toINI();
$longMessages[] = (new Message\LongMessage)
->setId($i + 1)
->setDstaddr($message->getDstaddr())
->setSmbody($message->getSmbody())
->setDlvtime($message->getDlvtime())
->setVldtime($message->getVldtime())
->setResponse($message->getResponse());
}
$body = trim($body);

$request = $this->client->newRequest(
'POST',
$this->client->buildUriWithQuery('/SmSendPost.asp', ['encoding' => 'UTF8']),
'text/plain',
$body
);

$response = $this->client->sendRequest($request);

return $this->parseMessageResponse($response);
return $this->sendLongMessageBatch($longMessages);
}

/**
Expand Down
11 changes: 2 additions & 9 deletions tests/APITest.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,8 @@ public function testSendBatch()
->setSmbody('須知反逆得到勝利時 / 社會纔能進步改革'),
]);

$expectedRequestBody = '[0]
dstaddr=0987654321
smbody=壓迫孕育反逆 / 反逆產生壓迫
dlvtime=60
vldtime=120
response=https://example.com/callback
[1]
dstaddr=0987654322
smbody=須知反逆得到勝利時 / 社會纔能進步改革';
$expectedRequestBody = '1$$0987654321$$60$$120$$$$https://example.com/callback$$壓迫孕育反逆 / 反逆產生壓迫
2$$0987654322$$$$$$$$$$須知反逆得到勝利時 / 社會纔能進步改革';

$expected = (new Message\Response())
->addResult(
Expand Down

0 comments on commit 6250992

Please sign in to comment.