public function scores($playerID) { //we should have a get payload. $level = $_GET['level']; $ids = explode(',', $_GET['ids']); $scores = array(); if ($level === 0) { return array(); } $playerModel = new PlayerModel(); if (count($ids)) { foreach ($ids as $key => $val) { $friendPlayerID = $playerModel->getPlayerIDFromUID($val, null, false); if ($friendPlayerID != "") { $data = $playerModel->getPlayerLevelScore($friendPlayerID[0], $level); if ($data) { if ($data->score != "") { $scores[$key] = array('uid' => $val, 'score' => (int) $data->score, 'name' => $data->first_name); } else { $scores[$key] = array('uid' => $val, 'score' => 0, 'name' => $data->first_name); } } } } } //add my own score cuz. why not. $mydata = $playerModel->getPlayerLevelScore($playerID, $level); if ($mydata) { $uid = $playerModel->getUidFromPlayerId($playerID); $scores[] = array('uid' => $uid, 'score' => $mydata->score, 'name' => $mydata->first_name); } usort($scores, $this->make_comparer(['score', SORT_DESC])); //$scores =array_multisort($scores, SORT_DESC, $ids); $this->printJson($scores); }
private function processPayment($objectID) { $playerModel = new PlayerModel(); $storeModel = new StoreModel(); $error = false; $newOrder = false; $graphUrl = sprintf('https://graph.facebook.com/%s?access_token=%s|%s', $objectID, Config::get('facebook.appid'), Config::get('facebook.appsecret')); $curl = new Curl(); $curl->get($graphUrl); if ($curl->error) { Log::add('Error in requesting object ' . $curl->error_code . ' : ' . $curl->error_message); throw new NinjaException("Error Processing Request"); } $res = $curl->response; $facebookID = $res->user->id; $playerArray = $playerModel->getPlayerIDFromUID($facebookID, null, false); $playerID = $playerArray[0]; $orderDetails = $storeModel->addOrder($playerID, $objectID, $res); if ($res->actions[0]->status == 'completed') { $status = 'ok'; Log::add('payment ok charged status is good'); } else { if ($res->actions[0]->status == 'failed') { $error = true; $status = 'error'; $message = 'Payment Declined'; Log::add('Payment failed ' . print_r($res, true)); } else { if ($res->actions[0]->status == 'initiated') { $error = false; Log::add('Payment failed ' . print_r($res, true)); } else { $error = true; $status = 'error'; $message = 'User canceled payment'; } } } //ANALYTICS if (!$error) { $array['status'] = 'ok'; $array['player'] = $playerModel->getPlayerData($playerID); $array['order'] = $orderDetails; $this->printJson($array); } else { $array['status'] = 'error'; $array['message'] = $message; $this->printJson($array); } }
public function sendrequest($playerID) { $playerModel = new PlayerModel(); //we'll have some data! Log::add('Send request called with data: ' . print_r($_POST, true)); $requestID = $_POST['request']; $facebookID = $_POST['ids']; $requestType = isset($_POST['type']) ? $_POST['type'] : 1; if ($requestID == '' || $facebookID == '') { Log::add('Error no request or facebook id to gift'); $response['status'] = 'error'; $response['message'] = 'No request sent'; $this->printJson($response); die; } //decode request. $graphUrl = sprintf('https://graph.facebook.com/%s?access_token=%s|%s', $requestID, Config::get('facebook.appid'), Config::get('facebook.appsecret')); $curl = new Curl(); $curl->get($graphUrl); if ($curl->error) { throw new NinjaException($curl->error_message, $curl->error_code); } //Else it's a success let's log it! $res = $curl->response; Log::add('The requestType is: ' . $requestType); $toFacebookID = $_POST['ids']; $fromFacebookID = $res->from->id; $fromName = $res->from->name; $fromID = $playerID; $toPlayers = explode(',', $toFacebookID); if ($requestType == 2) { //reverser this shit. foreach ($toPlayers as $key => $val) { $recipientID = $playerModel->getPlayerIDFromUID($val, null, false); $db['request_id'] = $res->id; $db['from_player'] = $playerID; $db['to_player'] = $recipientID; $db['to_uid'] = $val; $db['from_uid'] = $res->from->id; $db['type'] = 2; $db['from_player_name'] = $sendPlayer->first_name . ' ' . $sendPlayer->last_name; $db['date_added'] = time(); //get recip playerID $playerModel->addRequest($db); } } else { foreach ($toPlayers as $key => $val) { $recipientID = $playerModel->getPlayerIDFromUID($val, null, false); $db['request_id'] = $res->id; $db['from_player'] = $playerID; $db['to_player'] = $recipientID; $db['to_uid'] = $toFacebookID; $db['from_uid'] = $res->from->id; $db['type'] = $purchaseType != '' ? $purchaseType : 1; $db['from_player_name'] = $fromName; $db['date_added'] = time(); $db['type'] = 1; $requestIDS[] = $res->id; $playerModel->addRequest($db); $playerModel->deleteRequest($db); } } $response['status'] = 'ok'; $response['uid'] = $toFacebookID; $this->printJson($response); }
public function init($uuid) { $swfs = new SwfModel(); $player = new PlayerModel(); $incentiveModel = new IncentiveModel(); if ($_GET['platform'] != '') { $payload['platform'] = $_GET['platform']; } else { $payload['platform'] = "mobile"; } $platform = $payload['platform']; list($playerID, $newPlayer) = $player->getPlayerIDFromUID($uuid, $payload); $p = $player->loadPlayer($playerID); $playerSessionID = md5(uniqid(rand(), true)) . "_" . $p->visitCount; $lastLoginDate = strtotime($p->last_login_date) ? strtotime($p->last_login_date) : "0"; $player->updatePlayerLoginInfo($playerID, $lastLoginDate, $playerSessionID, $platform); if ($_GET['id'] != '') { $collectedItems = $incentiveModel->collectBooty($playerID, $_GET['id']); } $params['status'] = 'ok'; $params['appid'] = Config::get('facebook.appid'); $params['secret'] = Config::get('facebook.appsecret'); $params['repo'] = Config::get('storage.url'); $params['base'] = Config::get('url'); $params['uid'] = $p->uid; $params['playerID'] = $p->player_id; $params['music'] = $p->music ? true : false; $params['soundfx'] = $p->soundfx ? true : false; $params['locale'] = 'en_US'; //going to be spanish or english $params['debug'] = false; $params['namespace'] = Config::get('facebook.namespace'); $params['version'] = (int) $swfs->getBuildNumber(); $params['playerSession'] = $playerSessionID; $params['newPlayer'] = $newPlayer; $params['platform'] = $platform; $params['analyticsUrl'] = Config::get('analytics.url'); $params['analyticsKey'] = Config::Get('analytics.key'); $params['analyticsSecret'] = Config::get('analytics.secret'); $this->printJson($params); }