コード例 #1
0
 static function addFederalDistrict($state_name, $federal_district)
 {
     $state_name = trim($state_name);
     $federal_district = trim($federal_district);
     $exists = self::getFederalDistrict($state_name, $federal_district);
     if ($exists != false) {
         //echo "it exists;";
         return false;
     }
     $state = null;
     $state = AddressStateTable::retrieveByText($state_name);
     if (!$state) {
         throw new Exception("AddressStateTable did not return state");
     }
     if ($state && strlen($federal_district)) {
         $district = new PoliticalDistrict();
         $district->State = $state;
         $district->federal_district = $federal_district;
         $district->save();
     }
     return self::getFederalDistrict($state_name, $federal_district);
 }
コード例 #2
0
 public function getGovtrackData($member)
 {
     $modified = array();
     if (!$member->bioguide_id) {
         return null;
     }
     $gp = Doctrine::getTable('GovtrackPerson')->findOneByBioguideId($member->bioguide_id);
     if (!$gp) {
         return null;
     }
     //get birthday from govtrack
     if ($startDate = $gp->start_date) {
         $member->start_date = $startDate;
         $modified[] = 'start_date';
     }
     //get gender from govtrack
     switch ($gp->gender) {
         case 'F':
             $member->gender_id = GenderTable::FEMALE;
             $modified[] = 'gender_id';
             break;
         case 'M':
             $member->gender_id = GenderTable::MALE;
             $modified[] = 'gender_id';
             break;
     }
     //get website from govtrack
     if ($url = $gp->url) {
         $member->website = $url;
         $modified[] = 'website';
     }
     //get govtrack_id from govtrack
     $member->govtrack_id = $gp->govtrack_id;
     $modified[] = 'govtrack_id';
     $this->printDebug("Set govtrack_id: " . $member->govtrack_id);
     //get opensecrets_id from govtrack
     if ($os_id = $gp->os_id) {
         $member->crp_id = $os_id;
         $modified[] = 'crp_id';
         $this->printDebug("Set crp_id: " . $member->crp_id);
     }
     //get state and district
     if ($gp->State->name) {
         $state = $gp->State;
         if ($lsState = Doctrine::getTable('AddressState')->findOneByName($state->name)) {
             $this->printDebug('Added representative state: ' . $state->name);
             if ($federalDistrict = $gp->district) {
                 $district = LsQuery::getByModelAndFieldsQuery('PoliticalDistrict', array('state_id' => $lsState->id, 'federal_district' => $federalDistrict))->fetchOne();
                 if (!$district) {
                     $district = new PoliticalDistrict();
                     $district->State = $lsState;
                     $district->federal_district = $federalDistrict;
                     $district->save();
                 }
                 $member->ElectedDistrict[] = $district;
                 $this->printDebug('Added representative district: ' . $federalDistrict);
             }
         }
     }
     //create govtrack reference
     $ref = new Reference();
     $ref->source = $this->_govtrackUrlBase . $member->govtrack_id;
     $ref->name = 'GovTrack.us';
     $ref->addFields($modified);
     $this->_references['govtrack'] = $ref;
 }
コード例 #3
0
 public function getCandidateEntityByCrpId($id)
 {
     if (!count($candidates = $this->getOsCandidatesById($id))) {
         return null;
     }
     //try to find entity by fec_id
     $fecIds = array();
     foreach ($candidates as $candidate) {
         if (!$candidate['fec_id'] || !$candidate['name_last']) {
             continue;
         }
         if ($entity = $this->getCandidateEntityByFecId($candidate['fec_id'], $candidate['name_last'])) {
             return $entity;
         }
         $fecIds[] = $candidate['fec_id'];
     }
     $candidate = $candidates[0];
     if ($this->debugMode) {
         print "+ Creating new entity for person " . $id . " (" . $candidate['name'] . ")\n";
     }
     $entity = new Entity();
     $entity->addExtension('Person');
     $entity->addExtension('PoliticalCandidate');
     $entity->name_last = $candidate['name_last'];
     $entity->name_first = $candidate['name_first'];
     $entity->name_middle = $candidate['name_middle'];
     $entity->name_suffix = $candidate['name_suffix'];
     $entity->crp_id = $id;
     foreach ($fecIds as $fecId) {
         $map = array('P' => 'pres_fec_id', 'S' => 'senate_fec_id', 'H' => 'house_fec_id');
         $code = substr($fecId, 0, 1);
         if (@($field = $map[$code])) {
             $entity->{$field} = $fecId;
         }
     }
     $entity->save();
     if (!($district = PoliticalDistrictTable::getFederalDistrict($state, $district))) {
         if ($state = AddressStateTable::retrieveByText($state)) {
             $district = new PoliticalDistrict();
             $district->state_id = $state['id'];
             $district->federal_district = $district;
             $district->save();
         }
     }
     if ($district) {
         $pc = $entity->getExtensionObject('PoliticalCandidate');
         $cd = new CandidateDistrict();
         $cd->candidate_id = $pc->id;
         $cd->district_id = $district->id;
         $cd->save();
     }
     return $entity;
 }