/** * Returns the available balance for this Account. * * @return Price * * @throws OperationResultException * @throws RequestException */ public function getBalance() { $operationName = Operations::GET_ACCOUNT_BALANCE; $operationResultName = OperationResults::GET_ACCOUNT_BALANCE_RESULT; $request = new Request($operationName); /** @var \SimpleXMLElement|bool $operationResult */ $operationResult = $request->execute()->retrieveResult($operationResultName); return Price::parseFromXml($operationResult->AvailableBalance); }
/** * Sends a message to multiple Workers in one API call. * * @param Worker[] $workers An array of maximum 100 Workers. * @param string $subject The subject for the notification email. * @param string $message The message. HTML markup is not allowed. * * @return bool|array Returns 'true' on success for all Workers. Returns an * array of error messages with the respective Worker ID as key otherwise. * * @throws \InvalidArgumentException If $subject and $message are not valid, * or there were more than 100 Workers to notify. * @throws OperationResultException * @throws RequestException */ public static function sendBulkMessage(array $workers, $subject, $message) { self::validateMessage($subject, $message); if (count($workers) > 100) { throw new \InvalidArgumentException('$workers expects maximum 100 Workers'); } $operationName = Operations::NOTIFY_WORKERS; $operationResultName = OperationResults::NOTIFY_WORKERS_RESULT; $data = array('Subject' => $subject, 'MessageText' => $message); $i = 0; foreach ($workers as $worker) { $i++; $data["WorkerId.{$i}"] = $worker->getId(); } $request = new Request($operationName, $data); /** @var \SimpleXMLElement|bool $operationResult */ $operationResult = $request->execute()->retrieveResult($operationResultName); $fails = array(); if ($operationResult instanceof \SimpleXMLElement && property_exists($operationResult, 'NotifyWorkersFailureStatus')) { foreach ($operationResult->NotifyWorkersFailureStatus as $failure) { $wId = (string) $failure->WorkerId; $fails[$wId] = (string) $failure->NotifyWorkersFailureMessage; } } foreach ($workers as $worker) { $worker->validated = !array_key_exists($worker->getId(), $fails); } if (count($fails)) { return $fails; } return $operationResult; }