PluginProbe ʕ •ᴥ•ʔ
VikAppointments Services Booking Calendar / 1.2.20
VikAppointments Services Booking Calendar v1.2.20
1.2.21 1.2.20 trunk 1.2.17 1.2.18 1.2.19
vikappointments / libraries / adapter / sms / status.php
vikappointments / libraries / adapter / sms Last commit date
dispatcher.php 1 month ago driver.php 1 month ago status.php 1 month ago
status.php
173 lines
1 <?php
2 /**
3 * @package VikWP - Libraries
4 * @subpackage adapter.sms
5 * @author E4J s.r.l.
6 * @copyright Copyright (C) 2023 E4J s.r.l. All Rights Reserved.
7 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
8 * @link https://vikwp.com
9 */
10
11 // No direct access
12 defined('ABSPATH') or die('No script kiddies please!');
13
14 /**
15 * This class is used to wrap the details of
16 * a sms response.
17 *
18 * @since 10.1.30
19 */
20 class JSmsStatus
21 {
22 /**
23 * The sms status.
24 *
25 * @var boolean
26 */
27 protected $status = false;
28
29 /**
30 * Property used to track what is happening
31 * during the validation of the dispatch.
32 *
33 * @var string
34 */
35 protected $log = '';
36
37 /**
38 * Additional data.
39 *
40 * @var array
41 */
42 protected $data = array();
43
44 /**
45 * Magic method to access the property of the object.
46 *
47 * @param string $name The property name.
48 *
49 * @return mixed The property value.
50 */
51 public function __get($name)
52 {
53 if (isset($this->{$name}))
54 {
55 return $this->{$name};
56 }
57 else if (isset($this->data[$name]))
58 {
59 return $this->data[$name];
60 }
61
62 return null;
63 }
64
65 /**
66 * Checks whether the notification was successful.
67 *
68 * @return boolean True on success, otherwise false.
69 */
70 public function isVerified()
71 {
72 return $this->status;
73 }
74
75 /**
76 * Marks the notification status as verified or failed.
77 *
78 * @param boolean $status True if verified (default).
79 *
80 * @return self This object to support chaining.
81 */
82 public function verified($status = true)
83 {
84 $this->status = (bool) $status;
85
86 return $this;
87 }
88
89 /**
90 * Tracks the given log.
91 *
92 * @param mixed $log A string or a non-scalar value.
93 * An array will be logged using print_r.
94 *
95 * @return self This object to support chaining.
96 */
97 public function setLog($log)
98 {
99 if (!is_scalar($log))
100 {
101 // use print_r for non scalar logs
102 $log = print_r($log, true);
103 }
104
105 $this->log = $log;
106
107 return $this;
108 }
109
110 /**
111 * Appends the given log to the existing string.
112 *
113 * @param mixed $log A string or a non-scalar value.
114 * An array will be logged using print_r.
115 *
116 * @return self This object to support chaining.
117 *
118 * @uses setLog()
119 */
120 public function appendLog($log, $separator = "\n")
121 {
122 // keep current log
123 $current = $this->log;
124
125 // set log using the proper method
126 $this->setLog($log);
127
128 // re-build the log by prepending the existing logs
129 $this->log = $current . $separator . $this->log;
130
131 return $this;
132 }
133
134 /**
135 * Prepends the given log to the existing string.
136 *
137 * @param mixed $log A string or a non-scalar value.
138 * An array will be logged using print_r.
139 *
140 * @return self This object to support chaining.
141 *
142 * @uses setLog()
143 */
144 public function prependLog($log, $separator = "\n")
145 {
146 // keep current log
147 $current = $this->log;
148
149 // set log using the proper method
150 $this->setLog($log);
151
152 // re-build the log by appending the existing logs
153 $this->log .= $separator . $current;
154
155 return $this;
156 }
157
158 /**
159 * Registers an additional information.
160 *
161 * @param string $key The data key.
162 * @param mixed $val The data value.
163 *
164 * @return self This object to support chaining.
165 */
166 public function setData($key, $val)
167 {
168 $this->data[$key] = $val;
169
170 return $this;
171 }
172 }
173