/** * Execute the console command. * * @return mixed */ public function fire() { $this->info('Iniciando a requisição para o webservice'); $this->info('Carregando a lista de estados'); $estados = $this->makeRequest('estados'); $this->info('Foram encontrados ' . count($estados) . ' estados'); $this->info('Carregando a lista de cargos'); $cargos = CandidateType::all()->lists('id', 'type'); $this->info('Foram encontrados ' . count($cargos) . ' cargos'); $this->info('Carregando a lista de partidos'); $partidos = Party::all()->lists('id', 'abbreviation'); $this->info('Foram encontrados ' . count($partidos) . ' partidos'); foreach ($estados as $estado_id => $estado) { $this->info("Carregando os candidatos de {$estado->sigla} ({$estado_id}/" . count($estado) . ")"); foreach ($cargos as $cargo_nome => $cargo_id) { $this->info('- Procurando por ' . $cargo_nome); $candidatos = $this->makeRequest('candidatos', ['estado' => $estado->sigla, 'cargo' => $cargo_id]); foreach ($candidatos as $candidato) { $candidate = Candidate::where('full_name', $candidato->nome)->first(); if (!$candidate) { $this->info('-- Processando ' . $candidato->nome . '/' . $candidato->apelido); $picture_hash = Str::random(90) . ".jpg"; file_put_contents(app_path() . '/../www/uploads/' . $picture_hash, file_get_contents($candidato->foto)); Candidate::create(['party_id' => $partidos[$candidato->partido], 'candidate_type_id' => $cargos[ucfirst(strtolower(str_replace('º', '', (string) $candidato->cargo)))], 'nickname' => $candidato->apelido, 'full_name' => $candidato->nome, 'picture' => $picture_hash]); } } //$this->info('Foram encontrados ' . count($candidatos) . ' candidatos'); } } }