/** * Tests returned codes */ public function testReturnedCodes() { $saved = new SavedContactInfo('description', '*****@*****.**', 1, SavedContactInfo::CODE_SUCCESS); $this->assertTrue($saved->isHandledCode()); $this->assertTrue($saved->isOk()); $this->assertFalse($saved->isPending()); $saved = new SavedContactInfo('description', '*****@*****.**', 1, SavedContactInfo::CODE_PENDING); $this->assertTrue($saved->isHandledCode()); $this->assertFalse($saved->isOk()); $this->assertTrue($saved->isPending()); $saved = new SavedContactInfo('description', '*****@*****.**', 1, -2); $this->assertFalse($saved->isHandledCode()); $this->assertFalse($saved->isOk()); $this->assertFalse($saved->isPending()); }
/** * {@inheritdoc} */ public function getStatusByTicket($ticket) { $try = 0; while (true) { $try++; try { $response = $this->soapClient->__soapCall('GetStatusByTicket', array(array('token' => $this->authenticationManager->getAuthenticationTokenContext()->toArray(), 'ticket' => $ticket))); $saved = new SavedContactInfo($response->GetStatusByTicketResult->Description, $response->GetStatusByTicketResult->Email, $response->GetStatusByTicketResult->MemberId, $response->GetStatusByTicketResult->ReturnCode); if ($saved->isPending() && $try < $this->retries) { // waiting 1.5s before next call usleep(1500000); continue; } return $saved; } catch (\SoapFault $e) { if (null !== $this->logger) { $this->logger->critical(sprintf('[%] %s', __CLASS__, $e->getMessage())); } if ($try >= $this->retries) { throw $e; } // waiting 500ms before next call usleep(500000); } } }