]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Command/ExportCommand.php
Add a real configuration for CS-Fixer
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Command / ExportCommand.php
index 9c3c3fefea4a575feb0796e84daf5156a83126bb..0dacb73406f013b19433325c477b785ae8a41545 100644 (file)
@@ -7,7 +7,6 @@ use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
 use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Output\StreamOutput;
 
 class ExportCommand extends ContainerAwareCommand
 {
@@ -23,7 +22,7 @@ class ExportCommand extends ContainerAwareCommand
                 'User from which to export entries'
             )
             ->addArgument(
-                'filename',
+                'filepath',
                 InputArgument::OPTIONAL,
                 'Path of the exported file'
             )
@@ -33,23 +32,26 @@ class ExportCommand extends ContainerAwareCommand
     protected function execute(InputInterface $input, OutputInterface $output)
     {
         try {
-            $user = $this->getUser($input->getArgument('username'));
+            $user = $this->getContainer()->get('wallabag_user.user_repository')->findOneByUserName($input->getArgument('username'));
         } catch (NoResultException $e) {
             $output->writeln(sprintf('<error>User "%s" not found.</error>', $input->getArgument('username')));
+
             return 1;
         }
-        $entries = $this->getDoctrine()
-            ->getRepository('WallabagCoreBundle:Entry')
+
+        $entries = $this->getContainer()->get('wallabag_core.entry_repository')
             ->getBuilderForAllByUser($user->getId())
             ->getQuery()
             ->getResult();
 
         $output->write(sprintf('Exporting %d entrie(s) for user « <comment>%s</comment> »... ', count($entries), $user->getUserName()));
 
-        $filePath = $input->getArgument('filename');
+        $filePath = $input->getArgument('filepath');
+
         if (!$filePath) {
-            $filePath = $this->getContainer()->getParameter('kernel.root_dir') . '/../' . sprintf('%s-export', $user->getUsername());
+            $filePath = $this->getContainer()->getParameter('kernel.root_dir') . '/../' . sprintf('%s-export.json', $user->getUsername());
         }
+
         try {
             $data = $this->getContainer()->get('wallabag_core.helper.entries_export')
                 ->setEntries($entries)
@@ -58,21 +60,13 @@ class ExportCommand extends ContainerAwareCommand
             file_put_contents($filePath, $data);
         } catch (\InvalidArgumentException $e) {
             $output->writeln(sprintf('<error>Error: "%s"</error>', $e->getMessage()));
+
+            return 1;
         }
 
         $output->writeln('<info>Done.</info>');
-    }
 
-    /**
-     * Fetches a user from its username.
-     *
-     * @param string $username
-     *
-     * @return \Wallabag\UserBundle\Entity\User
-     */
-    private function getUser($username)
-    {
-        return $this->getDoctrine()->getRepository('WallabagUserBundle:User')->findOneByUserName($username);
+        return 0;
     }
 
     private function getDoctrine()