OCA\OcSms\Controller\ApiController::checkPushStructure PHP Метод

checkPushStructure() приватный Метод

private checkPushStructure ( $smsCount, $smsDatas ) : boolean
$smsCount
$smsDatas
Результат boolean
    private function checkPushStructure($smsCount, $smsDatas)
    {
        if ($smsCount != count($smsDatas)) {
            $this->errorMsg = "Error: sms count invalid";
            return false;
        }
        foreach ($smsDatas as &$sms) {
            if (!array_key_exists("_id", $sms) || !array_key_exists("read", $sms) || !array_key_exists("date", $sms) || !array_key_exists("seen", $sms) || !array_key_exists("mbox", $sms) || !array_key_exists("type", $sms) || !array_key_exists("body", $sms) || !array_key_exists("address", $sms)) {
                $this->errorMsg = "Error: bad SMS entry";
                return false;
            }
            if (!is_numeric($sms["_id"])) {
                $this->errorMsg = sprintf("Error: Invalid SMS ID '%s'", $sms["_id"]);
                return false;
            }
            if (!is_numeric($sms["type"])) {
                $this->errorMsg = sprintf("Error: Invalid SMS type '%s'", $sms["type"]);
                return false;
            }
            if (!is_numeric($sms["mbox"]) && $sms["mbox"] != 0 && $sms["mbox"] != 1 && $sms["mbox"] != 2) {
                $this->errorMsg = sprintf("Error: Invalid Mailbox ID '%s'", $sms["mbox"]);
                return false;
            }
            if ($sms["read"] !== "true" && $sms["read"] !== "false") {
                $this->errorMsg = sprintf("Error: Invalid SMS Read state '%s'", $sms["read"]);
                return false;
            }
            if ($sms["seen"] !== "true" && $sms["seen"] !== "false") {
                $this->errorMsg = "Error: Invalid SMS Seen state";
                return false;
            }
            if (!is_numeric($sms["date"]) && $sms["date"] != 0 && $sms["date"] != 1) {
                $this->errorMsg = "Error: Invalid SMS date";
                return false;
            }
            // @ TODO: test address and body ?
        }
        return true;
    }