Skip to content

Commit 40776a8

Browse files
GroupMessageResponse, SendResponse 추가
1 parent 53b98a2 commit 40776a8

7 files changed

Lines changed: 152 additions & 36 deletions

File tree

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "solapi/solapi-php",
2+
"name": "solapi/sdk",
33
"description": "SOLAPI SDK for PHP",
44
"version": "5.0.0",
55
"type": "library",

composer.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Libraries/CurlDeserializer.php

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/Libraries/Fetcher.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
use Exception;
66
use Nurigo\Solapi\Exceptions\CurlException;
77

8+
/**
9+
* @template T, R
10+
*/
811
class Fetcher
912
{
1013
private static $singleton;
@@ -36,7 +39,6 @@ public function __destruct()
3639
* @param string $method
3740
* @param string $uri
3841
* @param mixed $data
39-
* @return mixed
4042
* @throws Exception|CurlException CURL 관련된 Exception
4143
*/
4244
public function request(string $method, string $uri, $data = false)
@@ -68,6 +70,7 @@ public function request(string $method, string $uri, $data = false)
6870
}
6971
$result = curl_exec($curl);
7072
curl_close($curl);
73+
7174
return json_decode($result);
7275
}
7376
}
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<?php
2+
3+
namespace Nurigo\Solapi\Models\Response;
4+
5+
class GroupMessageResponse
6+
{
7+
/**
8+
* @var object
9+
*/
10+
public $count;
11+
12+
/**
13+
* @var object
14+
*/
15+
public $countForCharge;
16+
17+
/**
18+
* @var object
19+
*/
20+
public $balance;
21+
22+
/**
23+
* @var object
24+
*/
25+
public $point;
26+
27+
/**
28+
* @var object
29+
*/
30+
public $app;
31+
32+
/**
33+
* @var object
34+
*/
35+
public $log;
36+
37+
/**
38+
* @var string 메시지 그룹 상태
39+
*/
40+
public $status;
41+
42+
/**
43+
* @var bool 중복 수신번호 허용 여부
44+
* true로 설정하면 중복 수신번호를 허용함
45+
*/
46+
public $allowDuplicates;
47+
48+
/**
49+
* @var bool
50+
*/
51+
public $isRefunded;
52+
53+
/**
54+
* @var string 계정 고유번호
55+
*/
56+
public $accountId;
57+
58+
/**
59+
* @var string|null 마이사이트 마스터 계정 고유번호
60+
*/
61+
public $masterAccountId;
62+
63+
/**
64+
* @var string 메시지 그룹 ID
65+
*/
66+
public $groupId;
67+
68+
/**
69+
* @var array
70+
*/
71+
public $price;
72+
73+
/**
74+
* @var string 메시지 그룹 생성일시
75+
*/
76+
public $dateCreated;
77+
78+
/**
79+
* @var string 메시지 그룹 수정일시
80+
*/
81+
public $dateUpdated;
82+
83+
/**
84+
* @var string 메시지 그룹 예약일시
85+
*/
86+
public $scheduledDate;
87+
88+
/**
89+
* @var string 메시지 그룹 발송일시
90+
*/
91+
public $dateSent;
92+
93+
/**
94+
* @var string 메시지 그룹 발송 완료일시
95+
*/
96+
public $dateCompleted;
97+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
namespace Nurigo\Solapi\Models\Response;
4+
5+
use JsonSerializable;
6+
7+
class SendResponse implements JsonSerializable
8+
{
9+
/**
10+
* @var GroupMessageResponse
11+
*/
12+
public $groupInfo;
13+
14+
/**
15+
* @var array
16+
*/
17+
public $failedMessageList;
18+
19+
/**
20+
* @param $value mixed
21+
*/
22+
public function __construct($value)
23+
{
24+
$this->groupInfo = $value->groupInfo;
25+
$this->failedMessageList = $value->failedMessageList;
26+
}
27+
28+
public function jsonSerialize(): array
29+
{
30+
return [
31+
"groupInfo" => $this->groupInfo,
32+
"failedMessageList" => $this->failedMessageList
33+
];
34+
}
35+
}

src/Services/SolapiMessageService.php

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
use Nurigo\Solapi\Libraries\Fetcher;
1010
use Nurigo\Solapi\Models\Message;
1111
use Nurigo\Solapi\Models\Request\SendRequest;
12-
use stdClass;
12+
use Nurigo\Solapi\Models\Response\SendResponse;
1313

1414
class SolapiMessageService
1515
{
@@ -27,25 +27,31 @@ public function __construct(string $apiKey, string $apiSecretKey)
2727
* 메시지 발송
2828
* @param Message|Message[] $messages
2929
* @param DateTime|null $scheduledDateTime
30-
* @return stdClass
30+
* @return SendResponse
3131
* @throws Exception|CurlException|MessageNotReceivedException
3232
*/
33-
public function send($messages, DateTime $scheduledDateTime = null): stdClass
33+
public function send($messages, DateTime $scheduledDateTime = null): SendResponse
3434
{
3535
if (!is_array($messages)) {
3636
$messages = array($messages);
3737
}
3838
$requestParameter = new SendRequest($messages, $scheduledDateTime);
39-
$response = $this->fetcherInstance->request("POST", "/messages/v4/send-many/detail", $requestParameter);
40-
41-
$count = $response->groupInfo->count;
39+
$response = new SendResponse($this->fetcherInstance->request("POST", "/messages/v4/send-many/detail", $requestParameter));
40+
/*$count = $response->groupInfo->count;
41+
print_r($count);
4242
if (
43-
(is_array($response->failedMessageList) && count($response->failedMessageList)) &&
43+
count((array) $response->failedMessageList) > 0 &&
4444
((int)$count->total === (int)$count->registeredFailed)
4545
) {
4646
throw new MessageNotReceivedException($response->failedMessageList);
47-
}
47+
}*/
4848

4949
return $response;
5050
}
51+
52+
public function uploadFile(string $filePath, $type = "MMS")
53+
{
54+
$fileContent = file_get_contents($filePath);
55+
$encodedFile = base64_encode($fileContent);
56+
}
5157
}

0 commit comments

Comments
 (0)