public function create(array $params) { $form = new \Kingboard\Lib\Forms\BattleCreateForm(); if (!$form->validate($_POST)) { // @todo handle invalid return $this->error("form is not valid"); } $user = \Kingboard\Lib\Auth\Auth::getUser(); $key = $form->apiKey; $scope = "char"; // for now we default to char. Account keys are never corp keys. if ($key['type'] == "Character") { $scope = "char"; } if ($key['type'] == "Corporation") { $scope = "corp"; } $pheal = new Pheal($key['apiuserid'], $key['apikey'], $scope); $contacts = $pheal->ContactList(array('characterID' => $form->character)); // reset to neutral pheal $pheal = new Pheal(); $characterInfo = $pheal->eveScope->CharacterInfo(array('characterID' => $form->character)); $positives = array(); foreach ($contacts->corporateContactList as $contact) { // accumulate postive standings if ($contact->standing > 0) { $positives[$contact->contactID] = $contact->contactName; } } // alliance standings override corp standings foreach ($contacts->allianceContactList as $contact) { if ($contact->standing > 0) { $positives[$contact->contactID] = $contact->contactName; } else { // negative standings, we only need those if corp has positive, but alliance negative if (isset($positives[$contact->contactID])) { unset($positives[$contact->contactID]); } } } $battleSetting = new \Kingboard\Model\BattleSettings(); $battleSetting->startdate = new \MongoDate(strtotime($_POST['startdate'])); $battleSetting->user = $user->_id; $battleSetting->enddate = new \MongoDate(strtotime($_POST['enddate'])); $battleSetting->system = $_POST['system']; $battleSetting->key = $key; // lets fix some info about the creator of this report $battleSetting->ownerCharacter = $form->character; $battleSetting->ownerCharacterName = $characterInfo->characterName; $battleSetting->ownerCorporation = (int) $characterInfo->corporationID; $battleSetting->ownerCorporationName = $characterInfo->corporation; $battleSetting->ownerAlliance = (int) $characterInfo->allianceID; $battleSetting->ownerAllianceName = $characterInfo->alliance; $battleSetting->positives = $positives; $battleSetting->runs = 0; $battleSetting->nextRun = new \MongoDate(time()); $battleSetting->save(); // we are done here, lets redirect to the battle! $this->redirect("/battle/" . $battleSetting->_id); }
public function updateMarketInformation() { if (2097152 & $this->accessMask and 67108864 & $this->accessMask) { $pheal = new Pheal($this->keyID, $this->vCode, 'char'); try { // Wallet Journal pull $response = $pheal->WalletJournal(array("characterID" => $this->characterID, "rowCount" => 2560)); $stmtJournal = $this->db->prepare('INSERT INTO user_walletjournal (character_id,journal_id,journal_date,journal_type,journal_fromname,journal_fromid,journal_toname,journal_toid,journal_specialid,journal_specialname,journal_amount,journal_balance,journal_reason) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE journal_amount=VALUES(journal_amount)'); foreach ($response->transactions as $transaction) { $stmtJournal->execute(array($this->characterID, $transaction->refID, $transaction->date, $transaction->refTypeID, $transaction->ownerName1, $transaction->ownerID1, $transaction->ownerName2, $transaction->ownerID2, $transaction->argID1, $transaction->argName1, $transaction->amount, $transaction->balance, $transaction->reason)); } // Contracts pull $response = $pheal->Contracts(array('characterID' => $this->characterID)); $stmtContract = $this->db->prepare('INSERT INTO user_contracts (character_id,contract_id,contract_issuerid,contract_issuercorpid,contract_assigneeid,contract_acceptorid,contract_startstationid,' . 'contract_endstationid,contract_type,contract_status,contract_title,contract_forcorp,contract_availability,contract_dateissued,contract_dateexpired,contract_dateaccepted,' . 'contract_numdays,contract_datecompleted,contract_price,contract_reward,contract_collateral,contract_buyout,contract_volume) VALUES ' . '(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE contract_acceptorid=VALUES(contract_acceptorid),contract_status=VALUES(contract_status),' . 'contract_dateaccepted=VALUES(contract_dateaccepted),contract_dateexpired=VALUES(contract_dateexpired),contract_datecompleted=VALUES(contract_datecompleted)'); foreach ($response->contractList as $contract) { $stmtContract->execute(array($this->characterID, $contract->contractID, $contract->issuerID, $contract->issuerCorpID, $contract->assigneeID, $contract->acceptorID, $contract->startStationID, $contract->endStationID, $contract->type, $contract->status, $contract->title, $contract->forCorp, $contract->availability, $contract->dateIssued, $contract->dateExpired, $contract->dateAccepted, $contract->numDays, $contract->dateCompleted, $contract->price, $contract->reward, $contract->collateral, $contract->buyout, $contract->volume)); } // Contact List pull $response = $pheal->ContactList(array("characterID" => $this->characterID)); $stmtJournal = $this->db->prepare('INSERT INTO user_contactlist (character_id,contact_type,contact_id,contact_name,contact_inwatchlist,contact_standing) VALUES (?,?,?,?,?,?) ON DUPLICATE KEY UPDATE contact_inwatchlist=VALUES(contact_inwatchlist),contact_standing=VALUES(contact_standing)'); foreach ($response->contactList as $contact) { $stmtJournal->execute(array($this->characterID, 'personal', $contact->contactID, $contact->contactName, $contact->inWatchlist, $contact->standing)); } return TRUE; } catch (\Pheal\Exceptions\PhealException $phealException) { // Putting the pheal exception through our test function to determine if it's a key failure, or an API server failure. $this->testAPIKeyStatus($phealException); return FALSE; } } else { return TRUE; } }