/** * Log a SMS. * * @param Resultinterface $sms The SMS to log. * @param float $duration The time required to send the SMS (in seconds). * @param string $provider_class The class name of the provider which sent the SMS. */ public function logMessage(ResultInterface $sms, $duration, $provider_class) { $this->smsList[] = array('sms' => $sms, 'duration' => $duration, 'provider_class' => $provider_class); if ($this->logger !== null) { $message = sprintf('SMS sent to %s, from %s %0.2f ms (%s), status: %s', $sms->getRecipient(), $sms->getOriginator(), $duration * 1000, $provider_class, $sms->getStatus()); $this->logger->info($message); } }
/** * @param ResultInterface $result * * @return RecordInterface */ public function storeResult(ResultInterface $result) { $number = PhoneNumberUtil::getInstance()->parse($result->getRecipient(), 'TH'); $provider = $this->provider->getActivedProvider(); $object = $this->createNew(); $object->setMessage($result->getBody()); $object->setTransactionId($result->getId()); $object->setNumber($number); $object->setState($object::STATE_SENT); $object->setPrice($provider->getPrice()); $object->setProvider($provider); $object->setCurrency($provider->getCurrency()); $event = new GenericEvent($object); $this->dispatchEvent('dos_sms_record_pre_store', $event); $this->manager->persist($object); $this->manager->flush(); $this->dispatchEvent('dos_sms_record_post_store', $event); return $object; }