• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

webeweb / smsmode-library / 9266683220

28 May 2024 09:13AM UTC coverage: 99.859%. Remained the same
9266683220

push

github

webeweb
Update CHANGELOG

706 of 707 relevant lines covered (99.86%)

52.12 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

98.59
/src/Provider/ApiProvider.php
1
<?php
2

3
/*
4
 * This file is part of the smsmode-library package.
5
 *
6
 * (c) 2017 WEBEWEB
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11

12
declare(strict_types = 1);
13

14
namespace WBW\Library\SmsMode\Provider;
15

16
use GuzzleHttp\Exception\ClientException;
17
use InvalidArgumentException;
18
use WBW\Library\Common\Provider\ProviderException;
19
use WBW\Library\SmsMode\Request\AccountBalanceRequest;
20
use WBW\Library\SmsMode\Request\AddingContactRequest;
21
use WBW\Library\SmsMode\Request\CheckingSmsMessageStatusRequest;
22
use WBW\Library\SmsMode\Request\CreatingApiKeyRequest;
23
use WBW\Library\SmsMode\Request\CreatingSubAccountRequest;
24
use WBW\Library\SmsMode\Request\DeletingSmsRequest;
25
use WBW\Library\SmsMode\Request\DeletingSubAccountRequest;
26
use WBW\Library\SmsMode\Request\DeliveryReportRequest;
27
use WBW\Library\SmsMode\Request\RetrievingSmsReplyRequest;
28
use WBW\Library\SmsMode\Request\SendingSmsBatchRequest;
29
use WBW\Library\SmsMode\Request\SendingSmsMessageRequest;
30
use WBW\Library\SmsMode\Request\SendingTextToSpeechSmsRequest;
31
use WBW\Library\SmsMode\Request\SendingUnicodeSmsRequest;
32
use WBW\Library\SmsMode\Request\SentSmsMessageListRequest;
33
use WBW\Library\SmsMode\Request\TransferringCreditsRequest;
34
use WBW\Library\SmsMode\Response\AccountBalanceResponse;
35
use WBW\Library\SmsMode\Response\AddingContactResponse;
36
use WBW\Library\SmsMode\Response\CheckingSmsMessageStatusResponse;
37
use WBW\Library\SmsMode\Response\CreatingApiKeyResponse;
38
use WBW\Library\SmsMode\Response\CreatingSubAccountResponse;
39
use WBW\Library\SmsMode\Response\DeletingSmsResponse;
40
use WBW\Library\SmsMode\Response\DeletingSubAccountResponse;
41
use WBW\Library\SmsMode\Response\DeliveryReportResponse;
42
use WBW\Library\SmsMode\Response\RetrievingSmsReplyResponse;
43
use WBW\Library\SmsMode\Response\SendingSmsBatchResponse;
44
use WBW\Library\SmsMode\Response\SendingSmsMessageResponse;
45
use WBW\Library\SmsMode\Response\SendingTextToSpeechSmsResponse;
46
use WBW\Library\SmsMode\Response\SendingUnicodeSmsResponse;
47
use WBW\Library\SmsMode\Response\SentSmsMessageListResponse;
48
use WBW\Library\SmsMode\Response\TransferringCreditsResponse;
49
use WBW\Library\SmsMode\Serializer\ResponseDeserializer;
50

51
/**
52
 * API provider.
53
 *
54
 * @author webeweb <https://github.com/webeweb>
55
 * @package WBW\Library\SmsMode\Provider
56
 */
57
class ApiProvider extends AbstractProvider {
58

59
    /**
60
     * Account balance.
61
     *
62
     * @param AccountBalanceRequest $request The account balance request.
63
     * @return AccountBalanceResponse Returns the account balance response.
64
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
65
     * @throws ProviderException Throws a provider exception if an error occurs.
66
     */
67
    public function accountBalance(AccountBalanceRequest $request): AccountBalanceResponse {
68

69
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
70

71
        $rawResponse = $this->callApi($request, $queryData);
8✔
72

73
        return ResponseDeserializer::deserializeAccountBalanceResponse($rawResponse);
8✔
74
    }
75

76
    /**
77
     * Adding contact.
78
     *
79
     * @param AddingContactRequest $request The adding contact request.
80
     * @return AddingContactResponse Returns the adding contact response.
81
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
82
     * @throws ProviderException Throws a provider exception if an error occurs.
83
     */
84
    public function addingContact(AddingContactRequest $request): AddingContactResponse {
85

86
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
87

88
        $rawResponse = $this->callApi($request, $queryData);
8✔
89

90
        return ResponseDeserializer::deserializeAddingContactResponse($rawResponse);
8✔
91
    }
92

93
    /**
94
     * Checking SMS message status.
95
     *
96
     * @param CheckingSmsMessageStatusRequest $request The checking SMS message status request.
97
     * @return CheckingSmsMessageStatusResponse Returns the checking SMS message status response.
98
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
99
     * @throws ProviderException Throws a provider exception if an error occurs.
100
     */
101
    public function checkingSmsMessageStatus(CheckingSmsMessageStatusRequest $request): CheckingSmsMessageStatusResponse {
102

103
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
104

105
        $rawResponse = $this->callApi($request, $queryData);
8✔
106

107
        return ResponseDeserializer::deserializeCheckingSmsMessageStatusResponse($rawResponse);
8✔
108
    }
109

110
    /**
111
     * Creating API key.
112
     *
113
     * @param CreatingApiKeyRequest $request The creating API key request.
114
     * @return CreatingApiKeyResponse Returns the creating API key response.
115
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
116
     * @throws ProviderException Throws a provider exception if an error occurs.
117
     */
118
    public function creatingApiKey(CreatingApiKeyRequest $request): CreatingApiKeyResponse {
119

120
        $queryData = $this->getRequestSerializer()->serialize($request);
16✔
121

122
        try {
123
            $rawResponse = $this->callApi($request, $queryData);
16✔
124
        } catch (ProviderException $ex) {
16✔
125

126
            $previous = $ex->getPrevious();
8✔
127
            if (false === ($previous instanceof ClientException)) {
8✔
128
                throw $ex;
×
129
            }
130

131
            $rawResponse = $previous->getResponse()->getBody()->getContents();
8✔
132
        }
133

134
        return ResponseDeserializer::deserializeCreatingApiKeyResponse($rawResponse);
8✔
135
    }
136

137
    /**
138
     * Creating sub-account.
139
     *
140
     * @param CreatingSubAccountRequest $request The creating sub-account request.
141
     * @return CreatingSubAccountResponse Returns the creating sub-account response.
142
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
143
     * @throws ProviderException Throws a provider exception if an error occurs.
144
     */
145
    public function creatingSubAccount(CreatingSubAccountRequest $request): CreatingSubAccountResponse {
146

147
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
148

149
        $rawResponse = $this->callApi($request, $queryData);
8✔
150

151
        return ResponseDeserializer::deserializeCreatingSubAccountResponse($rawResponse);
8✔
152
    }
153

154
    /**
155
     * Deleting SMS.
156
     *
157
     * @param DeletingSmsRequest $request The deleting SMS request.
158
     * @return DeletingSmsResponse Returns the delivery SMS message response.
159
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
160
     * @throws ProviderException Throws a provider exception if an error occurs.
161
     */
162
    public function deletingSms(DeletingSmsRequest $request): DeletingSmsResponse {
163

164
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
165

166
        $rawResponse = $this->callApi($request, $queryData);
8✔
167

168
        return ResponseDeserializer::deserializeDeletingSmsResponse($rawResponse);
8✔
169
    }
170

171
    /**
172
     * Deleting sub-account.
173
     *
174
     * @param DeletingSubAccountRequest $request The deleting sub-account request.
175
     * @return DeletingSubAccountResponse Returns the delivery sub-account response.
176
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
177
     * @throws ProviderException Throws a provider exception if an error occurs.
178
     */
179
    public function deletingSubAccount(DeletingSubAccountRequest $request): DeletingSubAccountResponse {
180

181
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
182

183
        $rawResponse = $this->callApi($request, $queryData);
8✔
184

185
        return ResponseDeserializer::deserializeDeletingSubAccountResponse($rawResponse);
8✔
186
    }
187

188
    /**
189
     * Delivery report.
190
     *
191
     * @param DeliveryReportRequest $request The delivery report request.
192
     * @return DeliveryReportResponse Returns the delivery report response.
193
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
194
     * @throws ProviderException Throws a provider exception if an error occurs.
195
     */
196
    public function deliveryReport(DeliveryReportRequest $request): DeliveryReportResponse {
197

198
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
199

200
        $rawResponse = $this->callApi($request, $queryData);
8✔
201

202
        return ResponseDeserializer::deserializeDeliveryReportResponse($rawResponse);
8✔
203
    }
204

205
    /**
206
     * Retrieving SMS reply.
207
     *
208
     * @param RetrievingSmsReplyRequest $request The retrieving SMS reply request.
209
     * @return RetrievingSmsReplyResponse Returns the retrieving SMS reply response.
210
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
211
     * @throws ProviderException Throws a provider exception if an error occurs.
212
     */
213
    public function retrievingSmsReply(RetrievingSmsReplyRequest $request): RetrievingSmsReplyResponse {
214

215
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
216

217
        $rawResponse = $this->callApi($request, $queryData);
8✔
218

219
        return ResponseDeserializer::deserializeRetrievingSmsReplyResponse($rawResponse);
8✔
220
    }
221

222
    /**
223
     * Sending SMS batch.
224
     *
225
     * @param SendingSmsBatchRequest $request The sending SMS batch request.
226
     * @return SendingSmsBatchResponse Returns the sending SMS message response.
227
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
228
     * @throws ProviderException Throws a provider exception if an error occurs.
229
     */
230
    public function sendingSmsBatch(SendingSmsBatchRequest $request): SendingSmsBatchResponse {
231

232
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
233

234
        $filename = realpath($queryData["fichier"]);
8✔
235
        $postData = [
6✔
236
            [
6✔
237
                "name"     => "fichier",
8✔
238
                "contents" => fopen($filename, "r"),
8✔
239
                "filename" => basename($filename),
8✔
240
            ],
6✔
241
        ];
6✔
242

243
        unset($queryData["fichier"]);
8✔
244

245
        $rawResponse = $this->callApi($request, $queryData, $postData);
8✔
246

247
        return ResponseDeserializer::deserializeSendingSmsBatchResponse($rawResponse);
8✔
248
    }
249

250
    /**
251
     * Sending SMS message.
252
     *
253
     * @param SendingSmsMessageRequest $request The sending SMS message request.
254
     * @return SendingSmsMessageResponse Returns the sending SMS message response.
255
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
256
     * @throws ProviderException Throws a provider exception if an error occurs.
257
     */
258
    public function sendingSmsMessage(SendingSmsMessageRequest $request): SendingSmsMessageResponse {
259

260
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
261

262
        $postData = [];
8✔
263
        if (true === array_key_exists("numero", $queryData)) {
8✔
264
            $postData["numero"] = $queryData["numero"];
8✔
265
            unset($queryData["numero"]);
8✔
266
        }
267

268
        $rawResponse = $this->callApi($request, $queryData, $postData);
8✔
269

270
        return ResponseDeserializer::deserializeSendingSmsMessageResponse($rawResponse);
8✔
271
    }
272

273
    /**
274
     * Sending text-to-speech SMS request.
275
     *
276
     * @param SendingTextToSpeechSmsRequest $request The sending text-to-speech SMS request.
277
     * @return SendingTextToSpeechSmsResponse Returns the sending text-to-speech response.
278
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
279
     * @throws ProviderException Throws a provider exception if an error occurs.
280
     */
281
    public function sendingTextToSpeechSms(SendingTextToSpeechSmsRequest $request): SendingTextToSpeechSmsResponse {
282

283
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
284

285
        $postData = [];
8✔
286
        if (true === array_key_exists("numero", $queryData)) {
8✔
287
            $postData["numero"] = $queryData["numero"];
8✔
288
            unset($queryData["numero"]);
8✔
289
        }
290

291
        $rawResponse = $this->callApi($request, $queryData, $postData);
8✔
292

293
        return ResponseDeserializer::deserializeSendingTextToSpeechSmsResponse($rawResponse);
8✔
294
    }
295

296
    /**
297
     * Sending unicode SMS request.
298
     *
299
     * @param SendingUnicodeSmsRequest $request The sending unicode SMS request.
300
     * @return SendingUnicodeSmsResponse Returns the sending unicode response.
301
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
302
     * @throws ProviderException Throws a provider exception if an error occurs.
303
     */
304
    public function sendingUnicodeSms(SendingUnicodeSmsRequest $request): SendingUnicodeSmsResponse {
305

306
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
307

308
        $postData = [];
8✔
309
        if (true === array_key_exists("numero", $queryData)) {
8✔
310
            $postData["numero"] = $queryData["numero"];
8✔
311
            unset($queryData["numero"]);
8✔
312
        }
313

314
        $rawResponse = $this->callApi($request, $queryData, $postData);
8✔
315

316
        return ResponseDeserializer::deserializeSendingUnicodeSmsResponse($rawResponse);
8✔
317
    }
318

319
    /**
320
     * Sent SMS message list.
321
     *
322
     * @param SentSmsMessageListRequest $request The sent SMS message list request.
323
     * @return SentSmsMessageListResponse Returns the sent SMS message list response.
324
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
325
     * @throws ProviderException Throws a provider exception if an error occurs.
326
     */
327
    public function sentSmsMessageList(SentSmsMessageListRequest $request): SentSmsMessageListResponse {
328

329
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
330

331
        $rawResponse = $this->callApi($request, $queryData);
8✔
332

333
        return ResponseDeserializer::deserializeSentSmsMessageListResponse($rawResponse);
8✔
334
    }
335

336
    /**
337
     * Transferring credits.
338
     *
339
     * @param TransferringCreditsRequest $request The transferring credits request.
340
     * @return TransferringCreditsResponse Returns the transferring credits response.
341
     * @throws InvalidArgumentException Throws an invalid argument exception if a parameter is missing.
342
     * @throws ProviderException Throws a provider exception if an error occurs.
343
     */
344
    public function transferringCredits(TransferringCreditsRequest $request): TransferringCreditsResponse {
345

346
        $queryData = $this->getRequestSerializer()->serialize($request);
8✔
347

348
        $rawResponse = $this->callApi($request, $queryData);
8✔
349

350
        return ResponseDeserializer::deserializeTransferringCreditsResponse($rawResponse);
8✔
351
    }
352
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc