X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/e23dd2a0394f23d83d0d92fb3fcf2f82aa61537c..ed0a31d7a909f78a031e955c87ae55323b6f7ba8:/Command/CalendarCommand.php

diff --git a/Command/CalendarCommand.php b/Command/CalendarCommand.php
index fb0cd02..dca096b 100644
--- a/Command/CalendarCommand.php
+++ b/Command/CalendarCommand.php
@@ -1,10 +1,18 @@
-<?php
+<?php declare(strict_types=1);
+
+/*
+ * This file is part of the Rapsys AirBundle package.
+ *
+ * (c) Raphaël Gertz <symfony@rapsys.eu>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
 
 namespace Rapsys\AirBundle\Command;
 
 use Doctrine\Persistence\ManagerRegistry;
 use Symfony\Component\Cache\Adapter\FilesystemAdapter;
-use Symfony\Component\Console\Command\Command;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -13,93 +21,32 @@ use Symfony\Component\Routing\RouterInterface;
 use Symfony\Contracts\Translation\TranslatorInterface;
 use Twig\Extra\Markdown\DefaultMarkdown;
 
+use Rapsys\AirBundle\Command;
 use Rapsys\AirBundle\Entity\Session;
 
 use Rapsys\PackBundle\Util\SluggerUtil;
 
 class CalendarCommand extends Command {
-	//Set failure constant
-	const FAILURE = 1;
-
-	///Set success constant
-	const SUCCESS = 0;
-
-	/**
-	 * Doctrine instance
-	 *
-	 * @var ManagerRegistry
-	 */
-	protected ManagerRegistry $doctrine;
-
-	///Router
-	protected RouterInterface $router;
-
-	///Slugger
-	protected SluggerUtil $slugger;
-
-	///Translator instance
-	protected TranslatorInterface $translator;
-
-	///Locale
-	protected $locale;
-
-	///Lifetime string
-	protected $lifetime;
-
-	///Namespace string
-	protected $namespace;
-
-	///Path string
-	protected $path;
-
 	/**
 	 * Creates new calendar command
 	 *
 	 * @param ManagerRegistry $doctrine The doctrine instance
+	 * @param string $locale The default locale
 	 * @param RouterInterface $router The router instance
 	 * @param SluggerUtil $slugger The slugger instance
 	 * @param TranslatorInterface $translator The translator instance
 	 * @param string $namespace The cache namespace
 	 * @param int $lifetime The cache lifetime
 	 * @param string $path The cache path
-	 * @param string $locale The default locale
 	 */
-	public function __construct(ManagerRegistry $doctrine, RouterInterface $router, SluggerUtil $slugger, TranslatorInterface $translator, string $namespace, int $lifetime, string $path, string $locale) {
+	public function __construct(protected ManagerRegistry $doctrine, protected string $locale, protected RouterInterface $router, protected SluggerUtil $slugger, protected TranslatorInterface $translator, protected string $namespace, protected int $lifetime, protected string $path) {
 		//Call parent constructor
-		parent::__construct();
-
-		//Store doctrine
-		$this->doctrine = $doctrine;
-
-		//Set lifetime
-		$this->lifetime = $lifetime;
-
-		//Set namespace
-		$this->namespace = $namespace;
-
-		//Set path
-		$this->path = $path;
-
-		//Store router
-		$this->router = $router;
-
-		//Retrieve slugger
-		$this->slugger = $slugger;
-
-		//Get router context
-		$context = $this->router->getContext();
-
-		//Set host
-		$context->setHost('airlibre.eu');
-
-		//Set scheme
-		$context->setScheme('https');
-
-		//Set the translator
-		$this->translator = $translator;
+		parent::__construct($this->doctrine, $this->locale, $this->router, $this->slugger, $this->translator);
 	}
 
-	///Configure attribute command
+	/**
+	 * Configure attribute command
+	 */
 	protected function configure() {
 		//Configure the class
 		$this
@@ -111,8 +58,10 @@ class CalendarCommand extends Command {
 			->setHelp('This command synchronize sessions in google calendar');
 	}
 
-	///Process the attribution
-	protected function execute(InputInterface $input, OutputInterface $output) {
+	/**
+	 * Process the attribution
+	 */
+	protected function execute(InputInterface $input, OutputInterface $output): int {
 		//Compute period
 		$period = new \DatePeriod(
 			//Start from last week
@@ -315,7 +264,7 @@ class CalendarCommand extends Command {
 					//Init source
 					$source = [
 						'title' => $this->translator->trans('%dance% %id% by %pseudonym%', ['%id%' => $sessionId, '%dance%' => $this->translator->trans($session['ad_name'].' '.lcfirst($session['ad_type'])), '%pseudonym%' => $session['au_pseudonym']]).' '.$this->translator->trans('at '.$session['l_title']),
-						'url' => $this->router->generate('rapsys_air_session_view', ['id' => $sessionId, 'location' => $this->slugger->slug($this->translator->trans($session['l_title'])), 'dance' => $this->slugger->slug($this->translator->trans($session['ad_name'].' '.lcfirst($session['ad_type']))), 'user' => $this->slugger->slug($session['au_pseudonym'])], UrlGeneratorInterface::ABSOLUTE_URL)
+						'url' => $this->router->generate('rapsysair_session_view', ['id' => $sessionId, 'location' => $this->slugger->slug($this->translator->trans($session['l_title'])), 'dance' => $this->slugger->slug($this->translator->trans($session['ad_name'].' '.lcfirst($session['ad_type']))), 'user' => $this->slugger->slug($session['au_pseudonym'])], UrlGeneratorInterface::ABSOLUTE_URL)
 					];
 
 					//Init location
@@ -514,13 +463,4 @@ class CalendarCommand extends Command {
 		//Return success
 		return self::SUCCESS;
 	}
-
-	/**
-	 * Return the bundle alias
-	 *
-	 * {@inheritdoc}
-	 */
-	public function getAlias(): string {
-		return 'rapsys_air';
-	}
 }