Revert "Tidy imports"

This reverts commit 2079aaef0e.
This commit is contained in:
Oliver Davies 2019-01-15 23:37:55 +00:00
parent 2079aaef0e
commit c199a9fd78
2 changed files with 27 additions and 21 deletions

View file

@ -4,10 +4,12 @@ namespace App\Command;
use App\Entity\Tweet; use App\Entity\Tweet;
use App\Service\TweetFetcher; use App\Service\TweetFetcher;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
class FetchTweetsCommand extends Command class FetchTweetsCommand extends Command
{ {
@ -18,17 +20,11 @@ class FetchTweetsCommand extends Command
*/ */
private $tweetFetcher; private $tweetFetcher;
/** public function __construct(TweetFetcher $tweetFetcher)
* @var \Doctrine\ORM\EntityManagerInterface
*/
private $entityManager;
public function __construct(TweetFetcher $tweetFetcher, EntityManagerInterface $entityManager)
{ {
parent::__construct(); parent::__construct();
$this->tweetFetcher = $tweetFetcher; $this->tweetFetcher = $tweetFetcher;
$this->entityManager = $entityManager;
} }
protected function configure() protected function configure()
@ -40,10 +36,18 @@ class FetchTweetsCommand extends Command
protected function execute(InputInterface $input, OutputInterface $output) protected function execute(InputInterface $input, OutputInterface $output)
{ {
$this->tweetFetcher->getTweets()->each(function (Tweet $tweet) { $io = new SymfonyStyle($input, $output);
$this->entityManager->persist($tweet);
});
$this->entityManager->flush(); $io->table(
['Tweet', 'Author', 'Created', 'ID'],
$this->tweetFetcher->getTweets()->map(function (Tweet $tweet) {
return [
$tweet->getText(),
$tweet->getAuthor(),
$tweet->getCreated(),
$tweet->getId(),
];
})->all()
);
} }
} }

View file

@ -3,7 +3,7 @@
namespace App\Service; namespace App\Service;
use App\Entity\Tweet; use App\Entity\Tweet;
use App\Repository\TweetRepository; use Doctrine\ORM\EntityManagerInterface;
use Tightenco\Collect\Support\Collection; use Tightenco\Collect\Support\Collection;
class TweetFetcher class TweetFetcher
@ -30,30 +30,28 @@ class TweetFetcher
]; ];
/** /**
* @var \App\Repository\TweetRepository * @var \Doctrine\ORM\EntityManagerInterface
*/ */
private $tweetRepository; private $entityManager;
public function __construct(Codebird $codebird, TweetRepository $tweetRepository) public function __construct(Codebird $codebird, EntityManagerInterface $entityManager)
{ {
$this->codebird = $codebird; $this->codebird = $codebird;
$this->tweetRepository = $tweetRepository; $this->entityManager = $entityManager;
} }
public function getTweets(): Collection public function getTweets(): Collection
{ {
$latestTweet = $this->tweetRepository->findNewestTweet();
$response = collect($this->codebird->get()->search_tweets([ $response = collect($this->codebird->get()->search_tweets([
'q' => collect($this->params()->all())->implode(' AND '), 'q' => collect($this->params()->all())->implode(' AND '),
'since_id' => $latestTweet ? $latestTweet->getId() : null, // 'since_id' => $this->lastTweetId,
])); ]));
if ($response->get('httpstatus') != 200) { if ($response->get('httpstatus') != 200) {
dump($response); dump($response);
} }
return collect($response->get('statuses')) $tweets = collect($response->get('statuses'))
->map(function (\stdClass $status) { ->map(function (\stdClass $status) {
return tap(new Tweet(), function (Tweet $tweet) use ($status) { return tap(new Tweet(), function (Tweet $tweet) use ($status) {
$tweet->setId($status->id); $tweet->setId($status->id);
@ -64,6 +62,10 @@ class TweetFetcher
$this->entityManager->persist($tweet); $this->entityManager->persist($tweet);
}); });
})->reverse(); })->reverse();
$this->entityManager->flush();
return $tweets;
} }
private function params(): Collection private function params(): Collection