1 | <?php |
||
2 | namespace Sender\Sms; |
||
3 | |||
4 | use Sender\Deliver; |
||
5 | use Sender\Validation; |
||
6 | use Sender\Sms\SmsBulk; |
||
7 | use Sender\Sms\SmsNormal; |
||
8 | use Sender\MobileNumber; |
||
9 | use Sender\Traits\SmsBuildTrait; |
||
10 | use Sender\Traits\SmsOtpCommonTrait; |
||
11 | use Sender\Traits\SmsBuildSupportTrait; |
||
12 | use Sender\Config\Config as ConfigClass; |
||
13 | use Sender\ExceptionClass\ParameterException; |
||
14 | |||
15 | /** |
||
16 | * This Class for Build and send the SMS |
||
17 | * |
||
18 | * @package Msg91 SMS&OTP package |
||
19 | * @author VenkatS <[email protected]> |
||
20 | * @link https://github.com/tesark/msg91-php |
||
21 | * @license MIT |
||
22 | */ |
||
23 | |||
24 | class SmsBuildClass extends SmsDefineClass |
||
25 | { |
||
26 | use SmsBuildTrait; |
||
27 | use SmsOtpCommonTrait; |
||
28 | use SmsBuildSupportTrait; |
||
29 | /** |
||
30 | * This function for Add mobile number |
||
31 | * @param array $xmlDoc |
||
32 | * @param array $smsTag |
||
33 | * |
||
34 | 80 | */ |
|
35 | public function addMobileNumber($xmlDoc, $smsTag) |
||
36 | 80 | { |
|
37 | 80 | if ($this->setMobile()) { |
|
38 | 80 | $mobile = $this->getMobile(); |
|
39 | if (isset($mobile) && is_string($mobile)) { |
||
40 | $result = $this->isValidNumber($mobile); |
||
41 | $this->addMobileToXml($xmlDoc, $smsTag, $result); |
||
42 | } else { |
||
43 | throw ParameterException::invalidArrtibuteType("mobile", "numericString", $mobile); |
||
44 | } |
||
45 | } |
||
46 | } |
||
47 | /** |
||
48 | * This function for build country |
||
49 | * @param int $category |
||
50 | * @param string $key |
||
51 | * @param array $buildSmsData |
||
52 | * |
||
53 | * @return array |
||
54 | */ |
||
55 | public function buildCountry($category, $key, $buildSmsData, $xmlDoc) |
||
56 | { |
||
57 | if ($this->setCountry()) { |
||
58 | $value = $this->getCountry(); |
||
59 | if ($this->isNumeric($value)) { |
||
60 | $buildSmsData = $this->buildData($category, $key, $value, $buildSmsData, $xmlDoc); |
||
61 | return $buildSmsData; |
||
62 | } else { |
||
63 | throw ParameterException::invalidArrtibuteType($key, "numeric", $value); |
||
64 | } |
||
65 | 12 | } |
|
66 | } |
||
67 | 12 | /** |
|
68 | 12 | * This function for build flash |
|
69 | 12 | * @param int $category |
|
70 | 8 | * @param string $key |
|
71 | 8 | * @param array $buildSmsData |
|
72 | * |
||
73 | 4 | * @return array |
|
74 | */ |
||
75 | public function buildFlash($category, $key, $buildSmsData, $xmlDoc) |
||
76 | { |
||
77 | if ($this->setFlash()) { |
||
78 | $value = $this->getFlash(); |
||
79 | $buildSmsData = $this->checkArrayValue($category, $key, $value, $buildSmsData, $xmlDoc); |
||
80 | } |
||
81 | return $buildSmsData; |
||
82 | } |
||
83 | /** |
||
84 | * This function for build Unicode |
||
85 | 4 | * @param int $category |
|
86 | * @param string $key |
||
87 | 4 | * @param array $buildSmsData |
|
88 | 4 | * |
|
89 | 4 | * @return array |
|
90 | */ |
||
91 | public function buildUnicode($category, $key, $buildSmsData, $xmlDoc) |
||
92 | { |
||
93 | if ($this->setUnicode()) { |
||
94 | $value = $this->getUnicode(); |
||
95 | $buildSmsData = $this->checkArrayValue($category, $key, $value, $buildSmsData, $xmlDoc); |
||
96 | } |
||
97 | return $buildSmsData; |
||
98 | } |
||
99 | /** |
||
100 | * This function for build schtime |
||
101 | 2 | * @param int $category |
|
102 | * @param string $key |
||
103 | 2 | * @param array $buildSmsData |
|
104 | 2 | * |
|
105 | 2 | * @return array |
|
106 | */ |
||
107 | public function buildSchtime($category, $key, $buildSmsData, $xmlDoc) |
||
108 | { |
||
109 | if ($this->setSchtime()) { |
||
110 | $value = $this->getSchtime(); |
||
111 | if ($this->isString($value) && $this->isVaildDateTime($value)) { |
||
112 | $buildSmsData = $this->buildData($category, $key, $value, $buildSmsData, $xmlDoc); |
||
113 | return $buildSmsData; |
||
114 | } else { |
||
115 | $message = "Allowed string value format like Y-m-d h:i:s Or Y/m/d h:i:s Or timestamp "; |
||
116 | throw ParameterException::invalidInput($key, "string", $value, $message); |
||
117 | 20 | } |
|
118 | } |
||
119 | 20 | } |
|
120 | 20 | /** |
|
121 | 20 | * This function for build sender |
|
122 | * @param int $category |
||
123 | * @param string $key |
||
124 | * @param array $buildSmsData |
||
125 | 20 | * |
|
126 | 20 | * @return array |
|
127 | */ |
||
128 | public function buildSmsSender($category, $key, $buildSmsData, $xmlDoc) |
||
129 | { |
||
130 | if ($this->setSender()) { |
||
131 | $value = $this->getSender(); |
||
132 | $buildSmsData = $this->stringTypeCheckAndBuildData($category, $key, $value, $buildSmsData, $xmlDoc); |
||
133 | } |
||
134 | return $buildSmsData; |
||
135 | } |
||
136 | /** |
||
137 | * This function for build afterminutes |
||
138 | 58 | * @param int $category |
|
139 | * @param string $key |
||
140 | 58 | * @param array $buildSmsData |
|
141 | 58 | * |
|
142 | 58 | * @return array |
|
143 | */ |
||
144 | 48 | public function buildAfterMinutes($category, $key, $buildSmsData) |
|
145 | { |
||
146 | if ($this->setAfterminutes()) { |
||
147 | $value = $this->getAfterminutes(); |
||
148 | $buildSmsData = $this->simplifyAfterMinutes($category, $key, $buildSmsData, $value); |
||
149 | } |
||
150 | return $buildSmsData; |
||
151 | } |
||
152 | /** |
||
153 | * This function for build Message |
||
154 | 8 | * @param int $category |
|
155 | * @param string $key |
||
156 | 8 | * @param array $buildSmsData |
|
157 | 8 | * |
|
158 | 8 | * @return array |
|
159 | */ |
||
160 | public function buildMessage($category, $key, $buildSmsData, $xmlDoc) |
||
161 | { |
||
162 | if ($this->setMessage()) { |
||
163 | $value = $this->getMessage(); |
||
164 | $buildSmsData = $this->stringTypeCheckAndBuildData($category, $key, $value, $buildSmsData, $xmlDoc); |
||
165 | } |
||
166 | return $buildSmsData; |
||
167 | } |
||
168 | /** |
||
169 | * This function for build Response |
||
170 | 72 | * @param int $category |
|
171 | * @param string $key |
||
172 | 72 | * @param array $buildSmsData |
|
173 | 72 | * |
|
174 | 72 | * @return array |
|
175 | */ |
||
176 | 62 | public function buildResponse($category, $key, $buildSmsData) |
|
177 | { |
||
178 | if ($this->setResponse()) { |
||
179 | $value = $this->getResponse(); |
||
180 | $buildSmsData = $this->stringTypeCheckAndBuildData($category, $key, $value, $buildSmsData); |
||
181 | } |
||
182 | return $buildSmsData; |
||
183 | } |
||
184 | /** |
||
185 | * This function for build Authkey |
||
186 | 6 | * @param int $category |
|
187 | * @param string $key |
||
188 | 6 | * @param array $buildSmsData |
|
189 | 6 | * |
|
190 | 6 | * @return array |
|
191 | */ |
||
192 | public function buildBulkAuth($category, $key, $buildSmsData, $xmlDoc) |
||
193 | { |
||
194 | if ($this->setAuthKey()) { |
||
195 | $value = $this->getAuthKey(); |
||
196 | $buildSmsData = $this->stringTypeCheckAndBuildData($category, $key, $value, $buildSmsData, $xmlDoc); |
||
197 | } |
||
198 | return $buildSmsData; |
||
199 | } |
||
200 | /** |
||
201 | * This function for build campaign |
||
202 | * @param int $category |
||
203 | * @param string $key |
||
204 | * @param array $buildSmsData |
||
205 | * |
||
206 | * @return array |
||
207 | */ |
||
208 | public function buildCampaign($category, $key, $buildSmsData, $xmlDoc) |
||
209 | { |
||
210 | if ($this->setCampaign()) { |
||
211 | $value = $this->getCampaign(); |
||
212 | $buildSmsData = $this->stringTypeCheckAndBuildData($category, $key, $value, $buildSmsData, $xmlDoc); |
||
213 | } |
||
214 | return $buildSmsData; |
||
215 | } |
||
216 | /** |
||
217 | * Add Content |
||
218 | 4 | * |
|
219 | * |
||
220 | 4 | */ |
|
221 | 4 | public function addContent($root, $category, $xmlDoc) |
|
222 | 4 | { |
|
223 | if ($this->isKeyExists('content', $this->inputData) && $this->setContent()) { |
||
224 | $bulkSms = $this->getContent(); |
||
225 | $lenOfBulkSms = Validation::getSize($bulkSms); |
||
226 | $this->checkContent($lenOfBulkSms, $bulkSms, $root, $category, $xmlDoc); |
||
227 | } else { |
||
228 | $message = "content Must be present"; |
||
229 | throw ParameterException::missinglogic($message); |
||
230 | } |
||
231 | } |
||
232 | /** |
||
233 | 10 | * This function for sms array Build with message |
|
234 | * @param array $buildSmsData |
||
235 | 10 | * |
|
236 | 10 | * @throws ParameterException missing parameters or return empty |
|
237 | 10 | * @return array $buildSmsData |
|
238 | 10 | */ |
|
239 | public function addMessage($buildSmsData, $category, $xmlDoc = null) |
||
240 | { |
||
241 | $result = $this->keyPresent('message'); |
||
242 | if ($result) { |
||
0 ignored issues
–
show
introduced
by
![]() |
|||
243 | $buildSmsData = $this->buildMessage($category, 'message', $buildSmsData, $xmlDoc); |
||
244 | return $buildSmsData; |
||
245 | } |
||
246 | } |
||
247 | /** |
||
248 | * This function for sms array Build with Authkey |
||
249 | * @param int $category |
||
250 | * |
||
251 | * @throws ParameterException missing parameters or type error |
||
252 | * @return array $root |
||
253 | * |
||
254 | */ |
||
255 | public function addAuth($buildSmsData, $category, $xmlDoc = null) |
||
256 | { |
||
257 | $result = $this->keyPresent('authkey'); |
||
258 | if ($result) { |
||
0 ignored issues
–
show
|
|||
259 | $buildSmsData = $this->buildBulkAuth($category, 'authkey', $buildSmsData, $xmlDoc); |
||
260 | return $buildSmsData; |
||
261 | } |
||
262 | } |
||
263 | /** |
||
264 | * This function for sms array Build with sender |
||
265 | * @param int $category |
||
266 | * |
||
267 | 80 | * @throws ParameterException missing parameters or type error |
|
268 | * @return array $root |
||
269 | 80 | * |
|
270 | 72 | */ |
|
271 | 72 | public function addSender($buildSmsData, $category, $xmlDoc = null) |
|
272 | 62 | { |
|
273 | $result = $this->keyPresent('sender'); |
||
274 | if ($result) { |
||
0 ignored issues
–
show
|
|||
275 | $buildSmsData = $this->buildSmsSender($category, 'sender', $buildSmsData, $xmlDoc); |
||
276 | return $buildSmsData; |
||
277 | } |
||
278 | } |
||
279 | /** |
||
280 | * This function for sms array build with country |
||
281 | * |
||
282 | * @throws ParameterException missing parameters or type error |
||
283 | * @return array $root |
||
284 | */ |
||
285 | public function addCountry($buildSmsData, $category, $xmlDoc = null) |
||
286 | { |
||
287 | if ($this->isKeyPresent('country')) { |
||
288 | $buildSmsData = $this->buildCountry($category, 'country', $buildSmsData, $xmlDoc); |
||
289 | } |
||
290 | return $buildSmsData; |
||
291 | } |
||
292 | /** |
||
293 | * This function for sms array build with flash |
||
294 | * |
||
295 | * @throws ParameterException missing parameters or type error |
||
296 | * @return array $root |
||
297 | * |
||
298 | */ |
||
299 | public function addFlash($buildSmsData, $category, $xmlDoc = null) |
||
300 | { |
||
301 | if ($this->isKeyPresent('flash')) { |
||
302 | $buildSmsData = $this->buildFlash($category, 'flash', $buildSmsData, $xmlDoc); |
||
303 | } |
||
304 | return $buildSmsData; |
||
305 | 62 | } |
|
306 | /** |
||
307 | 62 | * This function for sms array build with flash |
|
308 | 62 | * |
|
309 | 58 | * @throws ParameterException missing parameters or type error |
|
310 | 48 | * @return array $buildSmsData |
|
311 | * |
||
312 | 4 | */ |
|
313 | 4 | public function addUnicode($buildSmsData, $category, $xmlDoc = null) |
|
314 | { |
||
315 | if ($this->isKeyPresent('unicode')) { |
||
316 | $buildSmsData = $this->buildUnicode($category, 'unicode', $buildSmsData, $xmlDoc); |
||
317 | } |
||
318 | return $buildSmsData; |
||
319 | } |
||
320 | /** |
||
321 | * This function for sms array build with schtime |
||
322 | 48 | * @param int $category |
|
323 | * |
||
324 | 48 | * @throws ParameterException missing parameters or type error |
|
325 | 12 | * @return array $root |
|
326 | * |
||
327 | 44 | */ |
|
328 | public function addSchtime($buildSmsData, $category, $xmlDoc = null) |
||
329 | { |
||
330 | if ($this->isKeyPresent('schtime')) { |
||
331 | $buildSmsData = $this->buildSchtime($category, 'schtime', $buildSmsData, $xmlDoc); |
||
332 | } |
||
333 | return $buildSmsData; |
||
334 | } |
||
335 | /** |
||
336 | 44 | * This function for sms array build with |
|
337 | * |
||
338 | 44 | * @throws ParameterException missing parameters or type error |
|
339 | 4 | * @return array $buildSmsData |
|
340 | * |
||
341 | 40 | */ |
|
342 | public function addAfterMinutes($buildSmsData, $category) |
||
343 | { |
||
344 | if ($this->isKeyPresent('afterminutes')) { |
||
345 | $buildSmsData = $this->buildAfterMinutes($category, 'afterminutes', $buildSmsData); |
||
346 | } |
||
347 | return $buildSmsData; |
||
348 | } |
||
349 | /** |
||
350 | 40 | * This function for sms array build with Response |
|
351 | * |
||
352 | 40 | * @throws ParameterException missing parameters or type error |
|
353 | 2 | * @return array $buildSmsData |
|
354 | */ |
||
355 | 38 | public function addResponse($buildSmsData, $category) |
|
356 | { |
||
357 | if ($this->isKeyPresent('response')) { |
||
358 | $buildSmsData = $this->buildResponse($category, 'response', $buildSmsData); |
||
359 | } |
||
360 | return $buildSmsData; |
||
361 | } |
||
362 | /** |
||
363 | * This function for sms array build with campaign |
||
364 | * |
||
365 | 38 | * @throws ParameterException missing parameters or type error |
|
366 | * @return array $root |
||
367 | 38 | */ |
|
368 | 20 | public function addCampaign($buildSmsData, $category, $xmlDoc = null) |
|
369 | { |
||
370 | 18 | if ($this->isKeyPresent('campaign')) { |
|
371 | $buildSmsData = $this->buildCampaign($category, 'campaign', $buildSmsData, $xmlDoc); |
||
372 | } |
||
373 | return $buildSmsData; |
||
374 | } |
||
375 | } |
||
376 |