public static function getProductInformation($requester, $body) { $body = str_replace(' ', '', $body); $url = self::$flipkartSearchURL . $body . '&resultCount=1'; $searchJson = self::getURLContent($url, self::$fKAffiliateId, self::$fKAffiliateToken); echo $searchJson; $json = json_decode($searchJson, true); $productObj = $json['productInfoList'][0]['productBaseInfo']['productAttributes']; echo $json['productInfoList'][0]['productBaseInfo']['productAttributes']['title']; $newLine = '\\n'; $fkMRP = "MRP: " . $productObj['maximumRetailPrice']['amount']; $fkSellngPrice = "Selling Price: " . $productObj['sellingPrice']['amount']; $fkProductLink = $productObj['productUrl']; $fkTittle = $productObj['title']; $fkPriceProduct = "{$fkTittle}\n{$fkMRP}\n{$fkSellngPrice}\n{$fkProductLink}"; MessaggingController::sendMessage($requester, $fkPriceProduct); PubSub::publish(GenieConstants::$SERVICE_REQUEST_COMPLETE, $requester); }
public static function getMovieReview($requester, $movieTitle) { echo "\n\n\n\n\n"; var_dump($movieTitle); echo "\n\n\n\n\n"; $movieTitle = str_replace(' ', '+', $movieTitle); $url = self::$omdbURL . $movieTitle . '&y=&plot=short&r=json'; $movieReview = file_get_contents($url); if ($movieReview) { $json = json_decode($movieReview, true); if ($json['Response'] == 'false') { MessaggingController::sendMessage($requester, $json['Error']); } else { $response = "Tittle: " . $json['Title'] . "\n" . "imdb Rating: " . $json['imdbRating'] . "\n" . "Year: " . $json['Year'] . "\n" . "Released: " . $json['Released'] . "\n" . "Actors: " . $json['Actors'] . "\n" . "Plot: " . $json['Plot'] . "\n"; MessaggingController::sendMessage($requester, $response); } } else { MessaggingController::sendMessage($requester, GenieConstants::$SERVICE_UNAVAILABLE); } PubSub::publish(GenieConstants::$SERVICE_REQUEST_COMPLETE, $requester); }
public static function exitMenu($requester) { PubSub::publish(GenieConstants::$SERVICE_REQUEST_COMPLETE, $requester); }
public static function getLiveRunningStatus($requester, $request, $isDetailedStatusRequired = false) { $requestParams = explode(",", $request); $trainNumber = $requestParams[0]; $doj = $requestParams[1]; $date = DateTime::createFromFormat('d/m/Y', $doj); $doj = date_format($date, 'Ymd'); $url = self::$liveStatusURL . $trainNumber . '/doj/' . $doj . '/apikey/' . self::$railwayApikey . '/'; echo "************\n\n\n\n" . $url; $liveStatus = file_get_contents($url); $json = json_decode($liveStatus, true); if ($json['total'] == 0) { echo $json; $invalidDataMsg = "Invalid train number or journey date"; MessaggingController::sendMessage($requester, $invalidDataMsg); } else { if ($liveStatus) { // if(!$isDetailedStatusRequired) // { // $response = $json['position']; // MessaggingController::sendMessage($requester, $response); // } // else // { $response = "Current Status \n"; for ($count = 0; $count < $json['total']; $count++) { if ($json['route'][$count + 1]['status'] == '-') { $response .= "Station: " . $json['route'][$count]['station'] . "\nScheduled Dep: " . $json['route'][$count]['schdep'] . "\nActual Dep: " . $json['route'][$count]['actdep'] . "\nStatus: " . $json['route'][$count]['status']; break; } } // $response+=$json['position']; MessaggingController::sendMessage($requester, $response); //} } else { MessaggingController::sendMessage($requester, GenieConstants::$SERVICE_UNAVAILABLE); } } PubSub::publish(GenieConstants::$SERVICE_REQUEST_COMPLETE, $requester); }
if (count(self::$events[$name]) === 1) { if (is_callable(self::$events[$name][0])) { return call_user_func_array(self::$events[$name][0], $params); } else { return false; } } // Loop through all the events and call them foreach (self::$events[$name] as $event) { if (is_callable($event)) { call_user_func_array($event, $params); } } } public static function unsubscribe($name) { if (!empty(self::$events[$name])) { unset(self::$events[$name]); } } } // Basic usage PubSub::subscribe('beforeSave', function ($helo) { echo $helo; echo 'PubSub::beforeSave'; }); PubSub::subscribe('afterSave', function () { echo 'PubSub::afterSave'; }); PubSub::publish('beforeSave', "Helo"); PubSub::unsubscribe('beforeSave');
public static function getWeatherInformation($requester, $body) { PubSub::publish(GenieConstants::$SERVICE_REQUEST_COMPLETE, $requester); }
function onMessage($mynumber, $from, $id, $type, $time, $name, $body) { echo $from; echo $id; echo $type; addMessage($from, GenieConstants::$GENIE, $body); PubSub::publish('message_received', $mynumber, $from, $id, $type, $time, $name, $body); }
static function handleMessageReceived($mynumber, $from, $id, $type, $time, $name, $body) { $number = ExtractNumber($from); $contact = getUserInfo($number); if (!$contact) { addContact($number, $name); $contact = getUserInfo($number); $main_menu = GenieConstants::searchElement(GenieConstants::$MAIN_MENU_CONTEXT, GenieConstants::$REGISTRATION_MENU_CONTEXT, 'subMenu'); setMessageContext($main_menu, NULL, $contact['phone']); } //Handle ShortCut in request $requestArray = $data = preg_split('/\\s+/', $body); if ($requestArray[0][0] == '#') { self::handleShortCuts($contact, $requestArray); return; } $context = getMessageContext($number); $callBackFunction = 'initializeService'; if ($context['main_menu'] == -1) { self::handleGeneralConversation($body, $context, $contact); return; } if ($context['main_menu'] == 0) { if (GenieConstants::searchElement(GenieConstants::$MAIN_MENU_CONTEXT, $body, 'id') != NULL) { updateMessageContext($body, NULL, $contact['phone']); PubSub::publish(GenieConstants::$MAIN_MENU_CONTEXT[$body]->menuItem, $callBackFunction, $contact); } else { MessaggingController::sendMessage($contact, GenieConstants::$INVALID_SERVICE); MessaggingController::sendMessage($contact, GenieConstants::$MAIN_MENU_STRING); } return; } if ($context['main_menu'] != 0 && $context['main_menu'] != 8 && $context['sub_menu'] == NULL) { $subMenuKey = GenieConstants::searchElement(GenieConstants::$MAIN_MENU_CONTEXT[$context['main_menu']]->subMenu, $body, 'id'); $SubMenuDict = GenieConstants::$MAIN_MENU_CONTEXT[$context['main_menu']]->subMenu; if ($subMenuKey != NULL) { updateMessageContext($context['main_menu'], $body, $contact['phone']); $callBackFunction = $SubMenuDict[$subMenuKey]->callBackMethod; PubSub::publish(GenieConstants::$MAIN_MENU_CONTEXT[$context['main_menu']]->menuItem, $callBackFunction, $contact); } else { MessaggingController::sendMessage($contact, GenieConstants::$INVALID_SERVICE); PubSub::publish(GenieConstants::$MAIN_MENU_CONTEXT[$context['main_menu']]->menuItem, $callBackFunction, $contact); } return; } else { if ($context['main_menu'] != 0 && $context['main_menu'] != 8 && $context['sub_menu'] != NULL) { $SubMenuDict = GenieConstants::$MAIN_MENU_CONTEXT[$context['main_menu']]->subMenu; $callBackFunction = $SubMenuDict[$context['sub_menu']]->requestServer; PubSub::publish(GenieConstants::$MAIN_MENU_CONTEXT[$context['main_menu']]->menuItem, $callBackFunction, $contact, $body); return; } else { if ($context['sub_menu'] != NULL) { $callBackFunction = GenieConstants::$MAIN_MENU_CONTEXT[$context['main_menu']]->subMenu[$context['sub_menu']]->callBackMethod; } else { if (GenieConstants::$MAIN_MENU_CONTEXT[$context['main_menu']]->callBackMethod != NULL) { $callBackFunction = GenieConstants::$MAIN_MENU_CONTEXT[$context['main_menu']]->callBackMethod; } } } } PubSub::publish(GenieConstants::$MAIN_MENU_CONTEXT[$context['main_menu']]->menuItem, $callBackFunction, $contact, $body); }
<?php require_once __DIR__ . "/../../src/utils/PubSub.php"; $channel = new PubSub(__DIR__ . "/test.channel"); $channel->publish(array("id" => "10"));
/** * @covers PubSub::call */ public function testCallbackCanReturnFalse() { $callbacks = array(function () { return false; }, function () { return true; }, array('PubSubTest', 'staticCallback'), array($this, 'instanceCallback'), 'global_pub_sub_test_callback'); foreach ($callbacks as $callback) { PubSub::subscribe('my_event', $callback); } $this->assertFalse(PubSub::publish('my_event'), 'Returning false from any callback should cause a false return value for the publish.'); }