Example #1
0
 /**
  * Run the Update
  *
  * @return mixed|void
  */
 public function call()
 {
     $pheal = $this->setScope('char')->getPheal();
     foreach ($this->api_info->characters as $character) {
         $result = $pheal->ContactList(['characterID' => $character->characterID]);
         // Contact Lists can change just like many other
         // types of information. So, we have to delete
         // the current list and recreate it with the
         // new data we sourced from the API.
         ContactListModel::where('characterID', $character->characterID)->delete();
         foreach ($result->contactList as $contact) {
             ContactListModel::create(['characterID' => $character->characterID, 'contactID' => $contact->contactID, 'contactName' => $contact->contactName, 'standing' => $contact->standing, 'contactTypeID' => $contact->contactTypeID, 'labelMask' => $contact->labelMask, 'inWatchlist' => $contact->inWatchlist]);
         }
         // Next up, the Contact List Labels
         ContactListLabel::where('characterID', $character->characterID)->delete();
         foreach ($result->contactLabels as $label) {
             ContactListLabel::create(['characterID' => $character->characterID, 'labelID' => $label->labelID, 'name' => $label->name]);
         }
         // Characters also expose Corp / Alliance contacts
         // information. As these can also change we will
         // update them as needed
         ContactListCorporate::where('characterID', $character->characterID)->delete();
         foreach ($result->corporateContactList as $contact) {
             ContactListCorporate::create(['characterID' => $character->characterID, 'corporationID' => $character->corporationID, 'contactID' => $contact->contactID, 'contactName' => $contact->contactName, 'standing' => $contact->standing, 'contactTypeID' => $contact->contactTypeID, 'labelMask' => $contact->labelMask]);
         }
         // Corporation Contacts also have Labels.
         ContactListCorporateLabel::where('characterID', $character->characterID)->delete();
         foreach ($result->corporateContactLabels as $label) {
             ContactListCorporateLabel::create(['characterID' => $character->characterID, 'corporationID' => $character->corporationID, 'labelID' => $label->labelID, 'name' => $label->name]);
         }
         // Next up, Alliance Contacts. Exactly the same applies
         // to these as the above personal / corporate contacts
         ContactListAlliance::where('characterID', $character->characterID)->delete();
         foreach ($result->allianceContactList as $contact) {
             ContactListAlliance::create(['characterID' => $character->characterID, 'contactID' => $contact->contactID, 'contactName' => $contact->contactName, 'standing' => $contact->standing, 'contactTypeID' => $contact->contactTypeID, 'labelMask' => $contact->labelMask]);
         }
         // And now, the labels for the Alliance Contact List
         ContactListAllianceLabel::where('characterID', $character->characterID)->delete();
         foreach ($result->allianceContactLabels as $label) {
             ContactListAllianceLabel::create(['characterID' => $character->characterID, 'labelID' => $label->labelID, 'name' => $label->name]);
         }
     }
     // Foreach Character
     return;
 }
Example #2
0
 /**
  * Get a characters contact list
  *
  * @param $character_id
  *
  * @return mixed
  */
 public function getCharacterContacts($character_id)
 {
     return ContactList::where('characterID', $character_id)->orderBy('standing', 'desc')->get();
 }
Example #3
0
 /**
  * Get a characters contact list
  *
  * @param int $character_id
  *
  * @return \Illuminate\Support\Collection
  */
 public function getCharacterContacts(int $character_id) : Collection
 {
     return ContactList::where('characterID', $character_id)->join('invTypes', function ($join) {
         $join->on('invTypes.typeID', '=', 'character_contact_lists.contactTypeID');
     })->orderBy('standing', 'desc')->get();
 }