<?php /** * @package VikWP - Libraries * @subpackage adapter.sms * @author E4J s.r.l. * @copyright Copyright (C) 2023 E4J s.r.l. All Rights Reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL * @link https://vikwp.com */ // No direct access defined('ABSPATH') or die('No script kiddies please!'); /** * This class is used to wrap the details of * a sms response. * * @since 10.1.30 */ class JSmsStatus { /** * The sms status. * * @var boolean */ protected $status = false; /** * Property used to track what is happening * during the validation of the dispatch. * * @var string */ protected $log = ''; /** * Additional data. * * @var array */ protected $data = array(); /** * Magic method to access the property of the object. * * @param string $name The property name. * * @return mixed The property value. */ public function __get($name) { if (isset($this->{$name})) { return $this->{$name}; } else if (isset($this->data[$name])) { return $this->data[$name]; } return null; } /** * Checks whether the notification was successful. * * @return boolean True on success, otherwise false. */ public function isVerified() { return $this->status; } /** * Marks the notification status as verified or failed. * * @param boolean $status True if verified (default). * * @return self This object to support chaining. */ public function verified($status = true) { $this->status = (bool) $status; return $this; } /** * Tracks the given log. * * @param mixed $log A string or a non-scalar value. * An array will be logged using print_r. * * @return self This object to support chaining. */ public function setLog($log) { if (!is_scalar($log)) { // use print_r for non scalar logs $log = print_r($log, true); } $this->log = $log; return $this; } /** * Appends the given log to the existing string. * * @param mixed $log A string or a non-scalar value. * An array will be logged using print_r. * * @return self This object to support chaining. * * @uses setLog() */ public function appendLog($log, $separator = "\n") { // keep current log $current = $this->log; // set log using the proper method $this->setLog($log); // re-build the log by prepending the existing logs $this->log = $current . $separator . $this->log; return $this; } /** * Prepends the given log to the existing string. * * @param mixed $log A string or a non-scalar value. * An array will be logged using print_r. * * @return self This object to support chaining. * * @uses setLog() */ public function prependLog($log, $separator = "\n") { // keep current log $current = $this->log; // set log using the proper method $this->setLog($log); // re-build the log by appending the existing logs $this->log .= $separator . $current; return $this; } /** * Registers an additional information. * * @param string $key The data key. * @param mixed $val The data value. * * @return self This object to support chaining. */ public function setData($key, $val) { $this->data[$key] = $val; return $this; } }