コード例 #1
0
 protected function _getLocationDetailsAmplia(SimModel $sim)
 {
     $service = $this->getAmpliaService();
     /** @var $req \Application\Proto\SupDetail\Data\SimDetailRequest */
     $req = $this->_createProto('readSimLocationDetail', $service);
     // Amplia uses the IMSI to identify the SIM
     $id = new \Application\Proto\SupProvision\Sim\SimId();
     $id->setImsi($sim->getImsi());
     $req->setSimId($id);
     /** @var $response \Application\Proto\SupDetail\Sim\SimLocationDetailResponse */
     $response = $this->_sendRequest('readSimLocationDetail', array('protoMessage' => $req), $service);
     if ($this->_checkGetResponse($response)) {
         $dataLocation = $response->serialize(new Codec\PhpArray());
         $dataLocation = $dataLocation['sim_location_detail'];
         $result = array();
         if (isset($dataLocation['location_manual'])) {
             $result['locationManual'] = $this->_mapLocationAmplia($dataLocation['location_manual']) ?: null;
         }
         //location auto should only be shown if location supplementaryService is enabled
         //on the sim
         if (isset($dataLocation['location_auto']) && isset($sim->supplementaryServices->location) && $sim->supplementaryServices->location) {
             $result['locationAuto'] = $this->_mapLocationAmplia($dataLocation['location_auto']) ?: null;
         }
         $result = $this->_convertFieldNamesToCammelCase($result);
         return $result;
     }
     return NULL;
 }
コード例 #2
0
 public static function getSubscriptionId(SimModel $sim)
 {
     $subs = new SubscriptionId();
     switch (true) {
         case $sim->getId() !== null:
             $subs->setType(SubscriptionId\IdType::ID);
             $subs->setId($sim->getId());
             break;
         case $sim->getIcc() !== null:
             $subs->setType(SubscriptionId\IdType::ICC);
             $subs->setId($sim->getIcc());
             break;
         case $sim->getImsi() !== null:
             $subs->setType(SubscriptionId\IdType::IMSI);
             $subs->setId($sim->getImsi());
             break;
         case $sim->getMsisdn() !== null:
             $subs->setType(SubscriptionId\IdType::MSISDN);
             $subs->setId($sim->getMsisdn());
             break;
         default:
             throw new InvalidArgumentException("Sim must have one identifier at least");
     }
     return $subs;
 }