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); }
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; }
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; }