Commit a0a8469d by Van

fix(all): Set a session for statut published during the cron. Update ReadMe. MAJ…

fix(all): Set a session for statut published during the cron. Update ReadMe. MAJ config with the user_id for the cron
parent 0762050c
...@@ -109,10 +109,10 @@ array:3 [▼ ...@@ -109,10 +109,10 @@ array:3 [▼
******************************************************************************************************** ********************************************************************************************************
####LabelFilter : #### LabelFilter :
###### Liste d'item séparés par # à transformer en icone par le biais d'un switch ###### Liste d'item séparés par # à transformer en icone par le biais d'un switch
######Exemple ###### Exemple
``` ```
Valeur en entrée : Valeur en entrée :
...@@ -138,10 +138,10 @@ Valeur en sortie : ...@@ -138,10 +138,10 @@ Valeur en sortie :
******************************************************************************************************** ********************************************************************************************************
####TarifFilter : #### TarifFilter :
###### Intitulé du tarif | Tarif minimum | Tarif maximum | Complément d'information ###### Intitulé du tarif | Tarif minimum | Tarif maximum | Complément d'information
######Exemple ###### Exemple
``` ```
Valeur en entrée : Valeur en entrée :
...@@ -170,9 +170,9 @@ Autre tarif (insolite by logis chalet) : de 68,00 € à 88,00 € ...@@ -170,9 +170,9 @@ Autre tarif (insolite by logis chalet) : de 68,00 € à 88,00 €
******************************************************************************************************** ********************************************************************************************************
####SimpleOpeningFilter : #### SimpleOpeningFilter :
######Date d'ouverture | Date de fermeture ###### Date d'ouverture | Date de fermeture
######Exemple ###### Exemple
``` ```
Valeur en entrée : Valeur en entrée :
...@@ -194,10 +194,10 @@ Ouverture du ...@@ -194,10 +194,10 @@ Ouverture du
``` ```
******************************************************************************************************** ********************************************************************************************************
####ValidatedDateFilter : #### ValidatedDateFilter :
######Date de début de validité de la promo | Date de fin de validité de la promo ###### Date de début de validité de la promo | Date de fin de validité de la promo
######Exemple ###### Exemple
``` ```
Valeur en entrée : Valeur en entrée :
...@@ -218,9 +218,9 @@ Valable du 25/08/2018 au 30/09/2018 ...@@ -218,9 +218,9 @@ Valable du 25/08/2018 au 30/09/2018
``` ```
******************************************************************************************************** ********************************************************************************************************
####FullDatesFilter : #### FullDatesFilter :
######Date de début et de fin (au format jj/mm/aaa), heure d'ouverture et de fermeture 1, heure d'ouverture et de fermeture 2 ###### Date de début et de fin (au format jj/mm/aaa), heure d'ouverture et de fermeture 1, heure d'ouverture et de fermeture 2
######Exemple ###### Exemple
``` ```
Valeur en entrée : Valeur en entrée :
...@@ -247,9 +247,9 @@ Du 06/07/2018 au 28/10/2018 de 15:00 à 19:00 ...@@ -247,9 +247,9 @@ Du 06/07/2018 au 28/10/2018 de 15:00 à 19:00
``` ```
******************************************************************************************************** ********************************************************************************************************
####FullOpeningFilter : #### FullOpeningFilter :
######Date d'ouverture et Date de fermeture (au format jj/mm/aaa), pour chaque jour de la semaine à partir du lundi : Heure d'ouverture 1 | Heure de fermeture 1 | Heure d'ouverture 2 | Heure de fermeture 2 (au format hh:mm) puis jours de fermeture. ###### Date d'ouverture et Date de fermeture (au format jj/mm/aaa), pour chaque jour de la semaine à partir du lundi : Heure d'ouverture 1 | Heure de fermeture 1 | Heure d'ouverture 2 | Heure de fermeture 2 (au format hh:mm) puis jours de fermeture.
######Exemple ###### Exemple
``` ```
Valeur en entrée : Valeur en entrée :
...@@ -279,9 +279,9 @@ Jours de fermeture : Samedi-Dimanche ...@@ -279,9 +279,9 @@ Jours de fermeture : Samedi-Dimanche
``` ```
******************************************************************************************************** ********************************************************************************************************
####CommunicationFilter : #### CommunicationFilter :
###### ######
######Exemple ###### Exemple
``` ```
Valeur en entrée : Valeur en entrée :
...@@ -327,9 +327,9 @@ Tél. +33 5 59 46 37 00 ...@@ -327,9 +327,9 @@ Tél. +33 5 59 46 37 00
``` ```
******************************************************************************************************** ********************************************************************************************************
####MeetingRoomFilter : #### MeetingRoomFilter :
###### Nom | Capacité | Surface | Descriptif | Equipements (Liste d'items) ###### Nom | Capacité | Surface | Descriptif | Equipements (Liste d'items)
######Exemple ###### Exemple
``` ```
Valeur en entrée : Valeur en entrée :
...@@ -367,9 +367,9 @@ Equipements : Ecran Paper-board Rétro-projecteur Télévision Vidéo-projecteur ...@@ -367,9 +367,9 @@ Equipements : Ecran Paper-board Rétro-projecteur Télévision Vidéo-projecteur
******************************************************************************************************** ********************************************************************************************************
####AttentionItiFilter : #### AttentionItiFilter :
###### Type de point d'attention | Latitude | Longitude ###### Type de point d'attention | Latitude | Longitude
######Exemple ###### Exemple
``` ```
Valeur en entrée : Valeur en entrée :
...@@ -402,9 +402,9 @@ Attention aux passages sur le gué, pierres glissantes par temps humide ...@@ -402,9 +402,9 @@ Attention aux passages sur le gué, pierres glissantes par temps humide
******************************************************************************************************** ********************************************************************************************************
####PhotoFilter : #### PhotoFilter :
###### Récupère le chemin vers la photo principale ou toutes les photos ###### Récupère le chemin vers la photo principale ou toutes les photos
######Exemple ###### Exemple
``` ```
Valeur en entrée : Valeur en entrée :
......
tourinsoft: tourinsoft:
user_id: 1
url: 'http://wcf.tourinsoft.com/Syndication/3.0/' url: 'http://wcf.tourinsoft.com/Syndication/3.0/'
ot_key: '' ot_key: 'cdt64'
cdn_url: 'http://cdt64.media.tourinsoft.eu/upload/' cdn_url: 'http://cdt64.media.tourinsoft.eu/upload/'
default_locale: 'FR' default_locale: 'fr'
locales : ['FR', 'EN', 'ES'] locales : ['fr', 'en', 'es']
field_mapping: field_mapping:
SyndicObjectID: SyndicObjectID:
label: Identifiant de l'offre label: Identifiant de l'offre
......
...@@ -75,10 +75,8 @@ class CronCommand extends Command ...@@ -75,10 +75,8 @@ class CronCommand extends Command
$item->setSynchronizedAt(new \DateTime()); $item->setSynchronizedAt(new \DateTime());
$app['storage']->getRepository(Flux::class)->update($item); $app['storage']->getRepository(Flux::class)->update($item);
$sync = new Synchronisation($this->config, $app, $item); $sync = new Synchronisation($this->config, $app, $item);
$sync->cron(); $sync->cron();
} }
$output->writeln([ $output->writeln([
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
namespace Bolt\Extension\Appolo\Tourinsoft\Synchronisation; namespace Bolt\Extension\Appolo\Tourinsoft\Synchronisation;
use Bolt\AccessControl\Token\Token;
use Bolt\Application; use Bolt\Application;
use Bolt\Extension\Appolo\Tourinsoft\Storage\Entity\Flux; use Bolt\Extension\Appolo\Tourinsoft\Storage\Entity\Flux;
...@@ -9,9 +10,15 @@ use Bolt\Extension\Appolo\Tourinsoft\Utils\ContentTypeFile; ...@@ -9,9 +10,15 @@ use Bolt\Extension\Appolo\Tourinsoft\Utils\ContentTypeFile;
use Bolt\Extension\Appolo\Tourinsoft\Utils\Data; use Bolt\Extension\Appolo\Tourinsoft\Utils\Data;
use Bolt\Extension\Appolo\Tourinsoft\Utils\Parser; use Bolt\Extension\Appolo\Tourinsoft\Utils\Parser;
use Bolt\Extension\Appolo\Tourinsoft\Utils\Schema; use Bolt\Extension\Appolo\Tourinsoft\Utils\Schema;
use Bolt\Provider\DatabaseSchemaServiceProvider; use Bolt\Provider\DatabaseSchemaServiceProvider;
use Bolt\Provider\StorageServiceProvider; use Bolt\Provider\StorageServiceProvider;
use Bolt\Storage\Entity\Authtoken;
use Bolt\Storage\Entity\Users;
use Doctrine\DBAL\Exception\TableNotFoundException;
class Synchronisation class Synchronisation
{ {
/** /**
...@@ -79,6 +86,9 @@ class Synchronisation ...@@ -79,6 +86,9 @@ class Synchronisation
$options = $this->config['tourinsoft']; $options = $this->config['tourinsoft'];
$options['keys'] = $this->flux->getKeys(); $options['keys'] = $this->flux->getKeys();
//set la session
$this->setUserSession();
// Parse tourinsoft flux // Parse tourinsoft flux
$parser = new Parser($options); $parser = new Parser($options);
$fields = $parser->getFields(); $fields = $parser->getFields();
...@@ -95,7 +105,6 @@ class Synchronisation ...@@ -95,7 +105,6 @@ class Synchronisation
// Add data // Add data
$data = new Data($this->application, $this->flux->getCode(), $arrayStream, $options); $data = new Data($this->application, $this->flux->getCode(), $arrayStream, $options);
$data->insert(); $data->insert();
} }
/** /**
...@@ -115,4 +124,35 @@ class Synchronisation ...@@ -115,4 +124,35 @@ class Synchronisation
$schema->updateStep1(); $schema->updateStep1();
} }
/**
* @return bool
*/
protected function setUserSession(){
try {
$userId = $this->config['tourinsoft']['user_id'];
$authTokenEntity = new Authtoken();
$authTokenEntity->set('user_id', $userId);
if (!$databaseUser = $this->getRepositoryUsers()->find($userId)) {
return false;
}
} catch (TableNotFoundException $e) {
return false;
}
// Update session data
/** @var Authtoken $authTokenEntity */
$sessionAuth = new Token($databaseUser, $authTokenEntity);
$this->application['session']->set('authentication', $sessionAuth);
}
/**
* @return mixed
*/
protected function getRepositoryUsers()
{
return $this->application['storage']->getRepository(Users::class);
}
} }
\ No newline at end of file
...@@ -3,9 +3,6 @@ ...@@ -3,9 +3,6 @@
namespace Bolt\Extension\Appolo\Tourinsoft\Utils; namespace Bolt\Extension\Appolo\Tourinsoft\Utils;
use Bolt\Application; use Bolt\Application;
use Bolt\Exception\InvalidRepositoryException;
use Bolt\Storage\Entity\Builder;
use Bolt\Storage\EntityManager;
use Cocur\Slugify\Slugify; use Cocur\Slugify\Slugify;
class Data class Data
...@@ -50,7 +47,6 @@ class Data ...@@ -50,7 +47,6 @@ class Data
$this->deleteData(); $this->deleteData();
$items = $this->getFormattedItems(); $items = $this->getFormattedItems();
$contentType = $this->getContentType(); $contentType = $this->getContentType();
// $contentType['status'] = 'published';
foreach ($items as $k => $item) { foreach ($items as $k => $item) {
$this->application['storage.request.save']->action($item, $contentType, null, null, null, null); $this->application['storage.request.save']->action($item, $contentType, null, null, null, null);
...@@ -95,15 +91,9 @@ class Data ...@@ -95,15 +91,9 @@ class Data
} }
$data['title'] = $data['syndicobjectname']; $data['title'] = $data['syndicobjectname'];
$data['slug'] = Slugify::create()->slugify($data['syndicobjectname']); $data['slug'] = Slugify::create()->slugify($data['syndicobjectname']);
/* if (!empty($data['nomoffre'])){
$data['slug'] = Slugify::create()->slugify($data['nomoffre']);
}else{
dump('1');
$data['slug'] = Slugify::create()->slugify($data['listingnom']);
}*/
$data['status'] = 'published'; $data['status'] = 'published';
$data['datepublish'] = new \DateTimeImmutable(); $data['datepublish'] = new \DateTimeImmutable();
$data['ownerid'] = 1; $data['ownerid'] = $this->options['user_id'];
$this->getTranslatedItem($data); $this->getTranslatedItem($data);
array_push($items, $data); array_push($items, $data);
...@@ -125,12 +115,6 @@ class Data ...@@ -125,12 +115,6 @@ class Data
if ($locale == $this->options['default_locale']) { if ($locale == $this->options['default_locale']) {
$data[$dataKey] = json_encode([]); $data[$dataKey] = json_encode([]);
$data[$slugKey] = Slugify::create()->slugify($data['syndicobjectname']); $data[$slugKey] = Slugify::create()->slugify($data['syndicobjectname']);
/*if (!empty($data['nomoffre'])){
$data[$slugKey] = Slugify::create()->slugify($data['nomoffre']);
}else{
dump('2');
$data[$slugKey] = Slugify::create()->slugify($data['listingnom']);
}*/
} else { } else {
$dataLocale = $this->getDataForLocales($locale, $data['syndicobjectid']); $dataLocale = $this->getDataForLocales($locale, $data['syndicobjectid']);
if(!empty($dataLocale)) { if(!empty($dataLocale)) {
...@@ -139,12 +123,6 @@ class Data ...@@ -139,12 +123,6 @@ class Data
} else { } else {
$data[$dataKey] = json_encode([]); $data[$dataKey] = json_encode([]);
$data[$slugKey] = Slugify::create()->slugify($data['syndicobjectname']); $data[$slugKey] = Slugify::create()->slugify($data['syndicobjectname']);
/*if (!empty($data['nomoffre'])){
$data[$slugKey] = Slugify::create()->slugify($data['nomoffre']);
}else{
dump('3');
$data[$slugKey] = Slugify::create()->slugify($data['listingnom']);
}*/
} }
} }
...@@ -170,13 +148,6 @@ class Data ...@@ -170,13 +148,6 @@ class Data
$data['title'] = $data['syndicobjectname']; $data['title'] = $data['syndicobjectname'];
$data['slug'] = Slugify::create()->slugify($locale. '-' .$data['syndicobjectname']); $data['slug'] = Slugify::create()->slugify($locale. '-' .$data['syndicobjectname']);
/* if (isset($data['nomoffre'])){
$data['slug'] = Slugify::create()->slugify($locale. '-' .$data['nomoffre']);
}else{
dump('4');
$data['slug'] = Slugify::create()->slugify($locale. '-' .$data['listingnom']);
}*/
return $data; return $data;
} }
} }
......
...@@ -4,7 +4,9 @@ namespace Bolt\Extension\Appolo\Tourinsoft\Utils; ...@@ -4,7 +4,9 @@ namespace Bolt\Extension\Appolo\Tourinsoft\Utils;
use Bolt\Application; use Bolt\Application;
use Bolt\Provider\DatabaseSchemaServiceProvider; use Bolt\Provider\DatabaseSchemaServiceProvider;
use Bolt\Provider\SessionServiceProvider;
use Bolt\Provider\StorageServiceProvider; use Bolt\Provider\StorageServiceProvider;
use Symfony\Component\HttpFoundation\Session\Session;
class Schema class Schema
{ {
...@@ -40,6 +42,7 @@ class Schema ...@@ -40,6 +42,7 @@ class Schema
public function updateCron() public function updateCron()
{ {
$output = $this->schemaManager()->update(); $output = $this->schemaManager()->update();
$this->session()->set('dbupdate_result', $output->getResponseStrings()); $this->session()->set('dbupdate_result', $output->getResponseStrings());
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment