Exemple #1
0
 /** Convert model to JSON. */
 public static function convertToJSON($model, $toString = false)
 {
     $conversionRules = Models::getConversionRules(get_class($model));
     $result = array();
     // Keep original simple values:
     $objectVars = get_object_vars($model);
     foreach ($objectVars as $key => $value) {
         if (is_string($value) || is_numeric($value)) {
             $result[$key] = $value;
         }
     }
     foreach ($conversionRules as $conversionRule) {
         if ($conversionRule instanceof FieldConversionRule) {
             $fieldName = $conversionRule->field;
             // TODO what if field names in JSON and in model are not the same?
             $result[$fieldName] = $conversionRule->toJSON($model->{$fieldName});
         } else {
             if ($conversionRule instanceof FieldConversionRule) {
                 // TODO
             }
         }
     }
     if ($toString) {
         return json_encode($result);
     }
     return $result;
 }
use infobip\Models;
class TerminalRoamingExtendedData extends AbstractObject
{
    public $destinationAddress;
    public $statusId;
    public $doneTime;
    public $pricePerMessage;
    public $mccMnc;
    public $servingMsc;
    public $censoredServingMsc;
    public $gsmErrorCode;
    public $originalNetworkName;
    public $portedNetworkName;
    public $servingHlr;
    public $imsi;
    public $originalNetworkPrefix;
    public $originalCountryPrefix;
    public $originalCountryName;
    public $isNumberPorted;
    public $portedNetworkPrefix;
    public $portedCountryPrefix;
    public $portedCountryName;
    public $numberInRoaming;
    public function __construct()
    {
        parent::__construct();
    }
}
Models::register('infobip\\models\\TerminalRoamingExtendedData');
<?php

use infobip\Conversions;
use infobip\Models;
use infobip\models\AbstractObject;
use infobip\ObjectArrayConversionRule;
require_once 'oneapi/client.php';
class Person extends AbstractObject
{
    public $name;
    public $surname;
    public $aliases;
}
Models::register('Person', array(new ObjectArrayConversionRule('Alias', 'aliases')));
class Alias extends AbstractObject
{
    public $alias;
}
Models::register('Alias');
$json = '{"surname": "bbb", "name": "aaa", "aliases": [{"alias": "qqqq"}, {"alias": "wwww"}, {"alias": "yyyy"}]}';
$result = Conversions::createFromJSON('Person', $json, false);
assert($result);
assert($result->surname == 'bbb');
assert(sizeof($result->aliases) == 3);
assert($result->aliases[1]->alias == 'wwww');
<?php

namespace infobip\models;

use infobip\Models;
use infobip\SubObjectConversionRule;
class AccountBalance extends AbstractObject
{
    public $balance;
    public $currency;
    public function __construct()
    {
        parent::__construct();
    }
}
Models::register('infobip\\models\\AccountBalance', new SubObjectConversionRule('infobip\\models\\Currency', 'currency'));
<?php

namespace infobip\models;

use infobip\Models;
use infobip\SubFieldConversionRule;
use infobip\SubObjectConversionRule;
class TerminalRoamingStatusNotification extends AbstractObject
{
    public $terminalRoamingStatus;
    public $callbackData;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\TerminalRoamingStatusNotification', array(new SubObjectConversionRule('infobip\\models\\TerminalRoamingStatus', 'terminalRoamingStatus', 'terminalRoamingStatusList.roaming'), new SubFieldConversionRule('callbackData', 'terminalRoamingStatusList.roaming.callbackData')));
<?php

namespace infobip\models;

use infobip\Models;
use infobip\ObjectArrayConversionRule;
class DeliveryReportSubscriptions extends AbstractObject
{
    public $subscriptionId;
    public function __construct()
    {
        parent::__construct();
    }
}
Models::register('infobip\\models\\DeliveryReportSubscriptions', new ObjectArrayConversionRule('infobip\\models\\DeliveryReportSubscription', 'deliveryReceiptSubscriptions'));
Exemple #7
0
<?php

namespace infobip\models;

use infobip\Models;
class Hlr extends AbstractObject
{
    public $clientCorrelator;
    public $address;
    public $notifyURL;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\Hlr');
<?php

namespace infobip\models;

use infobip\Models;
use infobip\ObjectConversionRule;
use infobip\utils\Utils;
class SmsException extends AbstractObject
{
    public $messageId;
    public $text;
    public $variables;
    public function __construct($array = null)
    {
        parent::__construct($array, true);
    }
}
function __convert_sms_exception_from_json($object, $json)
{
    $exception = Utils::getArrayValue($json, 'requestError.serviceException', Utils::getArrayValue($json, 'requestError.policyException', null));
    if ($exception) {
        $object->messageId = Utils::getArrayValue($exception, 'messageId', '');
        $object->text = Utils::getArrayValue($exception, 'text', '');
        $object->variables = Utils::getArrayValue($exception, 'variables', array());
    }
}
Models::register('infobip\\models\\SmsException', new ObjectConversionRule('infobip\\models\\__convert_sms_exception_from_json'));
Exemple #9
0
<?php

namespace infobip\models;

use infobip\Conversions;
use infobip\Models;
use infobip\utils\Logs;
use infobip\models\SmsException;
class Language
{
    public $languageCode;
    public $useSingleShift;
    public $useLockingShift;
    public function __construct($array = null, $success = true)
    {
        if (!$success) {
            $this->exception = new SmsException($array);
        } else {
            if ($array) {
                Logs::warn('Constructor with JSON params in ' . get_class($this) . ' is deprecated, use Conversions utility class!');
                Conversions::fillFromJSON($this, $array, !$success);
            }
        }
    }
}
Models::register('infobip\\models\\Language');
Exemple #10
0
<?php

namespace infobip\models;

use infobip\Models;
class Country extends AbstractObject
{
    public $id;
    public $code;
    public $prefix;
    public $name;
    public $locale;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\Country');
<?php

namespace infobip\models\two_factor_authentication;

use infobip\Models;
use infobip\models\AbstractObject;
class TfaApplicationConfiguration extends AbstractObject
{
    public $pinTimeToLive;
    public $pinAttempts;
    public $verificationAttempts;
    public $verificationIntervalLength;
    public $initiationAttempts;
    public $initiationIntervalLength;
    public $overallInitiationAttempts;
    public $overallInitiationIntervalLength;
    public $initiationThrottlingProlongationFactor;
    public $initiationThrottlingWaitPeriod;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\two_factor_authentication\\TfaApplicationConfiguration');
<?php

namespace infobip\models\iam;

use infobip\Models;
use infobip\models\AbstractObject;
class IamServiceException extends AbstractObject
{
    public $messageId;
    public $text;
    public $stackTrace;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\iam\\IamServiceException');
<?php

namespace infobip\models;

use infobip\Models;
class CustomerProfile extends AbstractObject
{
    public $id;
    public $username;
    public $forename;
    public $surname;
    public $street;
    public $city;
    public $zipCode;
    public $telephone;
    public $gsm;
    public $fax;
    public $email;
    public $msn;
    public $skype;
    public $countryId;
    public $timezoneId;
    public $primaryLanguageId;
    public $secondaryLanguageId;
    public function __construct()
    {
        parent::__construct();
    }
}
Models::register('infobip\\models\\CustomerProfile');
<?php

namespace infobip\models\two_factor_authentication;

use infobip\Models;
use infobip\models\AbstractObject;
use infobip\SubObjectConversionRule;
class TfaApplication extends AbstractObject
{
    public $applicationId;
    public $name;
    public $enabled;
    public $processId;
    public $configuration;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\two_factor_authentication\\TfaApplication', array(new SubObjectConversionRule('infobip\\models\\two_factor_authentication\\TfaApplicationConfiguration', 'configuration')));
Exemple #15
0
<?php

namespace infobip\models;

use infobip\Models;
class Price extends AbstractObject
{
    public $price;
    public $currency;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\Price');
Exemple #16
0
<?php

namespace infobip\models;

use infobip\Models;
use infobip\SubObjectConversionRule;
class Network extends AbstractObject
{
    public $id;
    public $name;
    public $country;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\Network', new SubObjectConversionRule('infobip\\models\\Country', 'country'));
<?php

namespace infobip\models\iam;

use infobip\Models;
use infobip\models\AbstractObject;
use infobip\SubObjectConversionRule;
class IamRequestError extends AbstractObject
{
    public $serviceException;
    public $clientCorrelator;
    public $variables;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\iam\\IamRequestError', array(new SubObjectConversionRule('infobip\\models\\iam\\IamServiceException', 'serviceException')));
Exemple #18
0
<?php

namespace infobip\models;

use infobip\Models;
class Currency extends AbstractObject
{
    public $id;
    public $currencyName;
    public $symbol;
    public function __construct()
    {
        parent::__construct();
    }
}
Models::register('infobip\\models\\Currency');
Exemple #19
0
use infobip\models\AbstractObject;
/**
 * SMS request object.
 */
class SMSRequest extends AbstractObject
{
    public $senderAddress;
    public $senderName;
    public $message;
    public $address;
    public $language;
    /** Used later for querying about the message status. */
    public $clientCorrelator;
    /**
     * If not empty -- this is the url where the delivery notification will be pushed.
     *
     * If empty -- the delivery notification may be queried using the
     * clientCorrelator string.
     */
    public $notifyURL;
    /** Arbitrary string that will be pushed if notifyURL is set. */
    public $callbackData;
    // TODO
    // public $dataCoding;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\SMSRequest');
<?php

namespace infobip\models;

use infobip\Models;
/**
 * Social Invite request object.
 */
class SocialInviteRequest extends AbstractObject
{
    public $senderAddress;
    public $recipients;
    public $messageKey;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\SocialInviteRequest');
<?php

use infobip\Conversions;
use infobip\Models;
use infobip\models\AbstractObject;
use infobip\SubscriptionIdFieldConversionRule;
require_once '../oneapi/client.php';
$json = '{"deliveryReceiptSubscription":{"callbackReference":{"callbackData":null,"notifyURL":"http://192.168.10.111/save_requests"},"resourceURL":"http://oneapi.infobip.com/1/smsmessaging/outbound/subscriptions/q1id6ksfc8"}}';
class TestClass_32749789 extends AbstractObject
{
    public $subscriptionId;
    public function __construct()
    {
        parent::__construct();
    }
}
Models::register('TestClass_32749789', new SubscriptionIdFieldConversionRule('subscriptionId', 'deliveryReceiptSubscription.resourceURL'));
$object = Conversions::createFromJSON('TestClass_32749789', $json, false);
assert($object);
assert($object->subscriptionId == 'q1id6ksfc8');
<?php

namespace infobip\models;

use infobip\Models;
use infobip\SubscriptionIdFieldConversionRule;
/**
 * Resulting object on message (HLR/LBS) send.
 */
class ResourceReference extends AbstractObject
{
    /**
     * The client correlator for this message. This value may be used to query 
     * for message status later.
     */
    public $clientCorrelator;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\ResourceReference', new SubscriptionIdFieldConversionRule('clientCorrelator', 'resourceReference.resourceURL'));
<?php

namespace infobip\models\two_factor_authentication;

use infobip\Models;
use infobip\models\AbstractObject;
class TfaIsVerifiedRequest extends AbstractObject
{
    public $applicationId;
    public $phoneNumber;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\two_factor_authentication\\TfaIsVerifiedRequest');
<?php

namespace infobip\models;

use infobip\Models;
/** Generic object to be used for API methods that return without body. */
class GenericObject extends AbstractObject
{
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\GenericObject');
Exemple #25
0
<?php

namespace infobip\models;

use infobip\Models;
class Timezone extends AbstractObject
{
    public $id;
    public $name;
    public $standardUtcOffset;
    public $dstOffset;
    public $dstStartTime;
    public $dstEndTime;
    public $countryId;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\Timezone');
use infobip\Conversions;
use infobip\Models;
use infobip\ObjectConversionRule;
use infobip\utils\Utils;
class InboundSmsMessages extends AbstractObject
{
    # FIXME: rename to messages
    public $inboundSMSMessage;
    public $numberOfMessagesInThisBatch;
    //public $resourceURL;
    public $totalNumberOfPendingMessages;
    public $callbackData;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
function __convert_inbound_sms_messages($object, $jsonData)
{
    $messages = Utils::getArrayValue($jsonData, 'inboundSMSMessageList.inboundSMSMessage', array());
    $object->inboundSMSMessage = array();
    foreach ($messages as $message) {
        $object->inboundSMSMessage[] = Conversions::createFromJSON('infobip\\models\\InboundSmsMessage', $message, false);
    }
    $object->numberOfMessagesInThisBatch = Utils::getArrayValue($jsonData, 'inboundSMSMessageList.numberOfMessagesInThisBatch', 0);
    $object->totalNumberOfPendingMessages = Utils::getArrayValue($jsonData, 'inboundSMSMessageList.totalNumberOfPendingMessages', 0);
    $object->callbackData = Utils::getArrayValue($jsonData, 'inboundSMSMessageList.callbackData');
}
Models::register('infobip\\models\\InboundSmsMessages', new ObjectConversionRule('infobip\\models\\__convert_inbound_sms_messages'));
<?php

namespace infobip\models;

use infobip\Models;
class SmsMessageSubscription extends AbstractObject
{
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\SmsMessageSubscription');
Exemple #28
0
<?php

namespace infobip\models\two_factor_authentication;

use infobip\Models;
use infobip\models\AbstractObject;
class TfaResponse extends AbstractObject
{
    public $smsId;
    public $phoneNumber;
    public $hlrStatus;
    public $smsStatus;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\two_factor_authentication\\TfaResponse');
Exemple #29
0
<?php

namespace infobip\models;

use infobip\Models;
class Captcha extends AbstractObject
{
    public $id;
    public $width;
    public $height;
    public $imageFormat;
    public $image;
    public function __construct($array = null, $success = true)
    {
        parent::__construct($array, $success);
    }
}
Models::register('infobip\\models\\Captcha');
<?php

namespace infobip\models;

use infobip\Models;
class ServingMccMnc extends AbstractObject
{
    public $mcc;
    public $mnc;
    public function __construct()
    {
        parent::__construct();
    }
}
Models::register('infobip\\models\\ServingMccMnc');