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 [▼
********************************************************************************************************
####LabelFilter :
#### LabelFilter :
###### Liste d'item séparés par # à transformer en icone par le biais d'un switch
######Exemple
###### Exemple
```
Valeur en entrée :
......@@ -138,10 +138,10 @@ Valeur en sortie :
********************************************************************************************************
####TarifFilter :
#### TarifFilter :
###### Intitulé du tarif | Tarif minimum | Tarif maximum | Complément d'information
######Exemple
###### Exemple
```
Valeur en entrée :
......@@ -170,9 +170,9 @@ Autre tarif (insolite by logis chalet) : de 68,00 € à 88,00 €
********************************************************************************************************
####SimpleOpeningFilter :
######Date d'ouverture | Date de fermeture
######Exemple
#### SimpleOpeningFilter :
###### Date d'ouverture | Date de fermeture
###### Exemple
```
Valeur en entrée :
......@@ -194,10 +194,10 @@ Ouverture du
```
********************************************************************************************************
####ValidatedDateFilter :
######Date de début de validité de la promo | Date de fin de validité de la promo
#### ValidatedDateFilter :
###### Date de début de validité de la promo | Date de fin de validité de la promo
######Exemple
###### Exemple
```
Valeur en entrée :
......@@ -218,9 +218,9 @@ Valable du 25/08/2018 au 30/09/2018
```
********************************************************************************************************
####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
######Exemple
#### 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
###### Exemple
```
Valeur en entrée :
......@@ -247,9 +247,9 @@ Du 06/07/2018 au 28/10/2018 de 15:00 à 19:00
```
********************************************************************************************************
####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.
######Exemple
#### 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.
###### Exemple
```
Valeur en entrée :
......@@ -279,9 +279,9 @@ Jours de fermeture : Samedi-Dimanche
```
********************************************************************************************************
####CommunicationFilter :
######
######Exemple
#### CommunicationFilter :
######
###### Exemple
```
Valeur en entrée :
......@@ -327,9 +327,9 @@ Tél. +33 5 59 46 37 00
```
********************************************************************************************************
####MeetingRoomFilter :
#### MeetingRoomFilter :
###### Nom | Capacité | Surface | Descriptif | Equipements (Liste d'items)
######Exemple
###### Exemple
```
Valeur en entrée :
......@@ -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
######Exemple
###### Exemple
```
Valeur en entrée :
......@@ -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
######Exemple
###### Exemple
```
Valeur en entrée :
......
tourinsoft:
user_id: 1
url: 'http://wcf.tourinsoft.com/Syndication/3.0/'
ot_key: ''
ot_key: 'cdt64'
cdn_url: 'http://cdt64.media.tourinsoft.eu/upload/'
default_locale: 'FR'
locales : ['FR', 'EN', 'ES']
default_locale: 'fr'
locales : ['fr', 'en', 'es']
field_mapping:
SyndicObjectID:
label: Identifiant de l'offre
Published:
label: Date de création de l’offre
Updated:
label: Date de mise à jour de l’offre
SyndicObjectName:
label: Le nom de l’offre touristique
SyndicStructureId:
label: Identifiant de la structure
GmapLatitude:
label: Coordonnées Latitude google map
GmapLongitude:
label: Coordonnées Longitude google map
ObjectTypeFix:
label: Identifiant du bordereau
ObjectTypeName:
label: Nom du bordereau
SyndicObjectOrder:
label: Ordre d’affichage
ACCES:
label: Point d'accès
ACCESHANDI:
label: Accessible aux personnes à mobilité réduite
AD1:
label: Adresse 1
AD1SUITE:
label: Adresse 1 suite
AD2:
label: Adresse 2
AD3:
label: Adresse 3
COMMUNE:
label: Commune touristique
COMMUNEINSEE:
label: INSEE Commune
CP:
label: Code Postal
DESCRIPTIF:
label: Description commerciale
FACEBOOK:
label: Facebook
FICHIER:
label: Fichier
FICHIER_NOM:
label: Fichier
FLICKR:
label: Flickr URL de la Galerie
GOOGLE_AD:
label: Google Adresses
LANG_PARLE:
label: Langues parlées
LAT:
label: Latitude
LOCALISATION:
label: Type de localisation
LON:
label: Longitude
MAILCOMPLET:
label: Coordonnées Télécom
NOM_OFFRE:
label: Raison sociale
OUVERTURE:
label: Ouverture
OUVERTURECOMPLETAVECJOURS:
label: Ouverture avec jours
PHOTO:
label: Photo
PHOTOCOMPLET:
label: Photo complet
QRCODE:
label: QR Code
TEL_COMPLET:
label: Téléphone
TEL_MOB_COMPLET:
label: Téléphone mobile
TWITTER:
label: Twitter
TYPE:
label: Type de commerces et services
VIDEO_CODE:
label: Code de la vidéo
VIDEO_URL:
label: URL vidéo
VISITE_VIRT:
label: Visite virtuelle
SyndicObjectID:
label: Identifiant de l'offre
Published:
label: Date de création de l’offre
Updated:
label: Date de mise à jour de l’offre
SyndicObjectName:
label: Le nom de l’offre touristique
SyndicStructureId:
label: Identifiant de la structure
GmapLatitude:
label: Coordonnées Latitude google map
GmapLongitude:
label: Coordonnées Longitude google map
ObjectTypeFix:
label: Identifiant du bordereau
ObjectTypeName:
label: Nom du bordereau
SyndicObjectOrder:
label: Ordre d’affichage
ACCES:
label: Point d'accès
ACCESHANDI:
label: Accessible aux personnes à mobilité réduite
AD1:
label: Adresse 1
AD1SUITE:
label: Adresse 1 suite
AD2:
label: Adresse 2
AD3:
label: Adresse 3
COMMUNE:
label: Commune touristique
COMMUNEINSEE:
label: INSEE Commune
CP:
label: Code Postal
DESCRIPTIF:
label: Description commerciale
FACEBOOK:
label: Facebook
FICHIER:
label: Fichier
FICHIER_NOM:
label: Fichier
FLICKR:
label: Flickr URL de la Galerie
GOOGLE_AD:
label: Google Adresses
LANG_PARLE:
label: Langues parlées
LAT:
label: Latitude
LOCALISATION:
label: Type de localisation
LON:
label: Longitude
MAILCOMPLET:
label: Coordonnées Télécom
NOM_OFFRE:
label: Raison sociale
OUVERTURE:
label: Ouverture
OUVERTURECOMPLETAVECJOURS:
label: Ouverture avec jours
PHOTO:
label: Photo
PHOTOCOMPLET:
label: Photo complet
QRCODE:
label: QR Code
TEL_COMPLET:
label: Téléphone
TEL_MOB_COMPLET:
label: Téléphone mobile
TWITTER:
label: Twitter
TYPE:
label: Type de commerces et services
VIDEO_CODE:
label: Code de la vidéo
VIDEO_URL:
label: URL vidéo
VISITE_VIRT:
label: Visite virtuelle
......@@ -75,10 +75,8 @@ class CronCommand extends Command
$item->setSynchronizedAt(new \DateTime());
$app['storage']->getRepository(Flux::class)->update($item);
$sync = new Synchronisation($this->config, $app, $item);
$sync->cron();
}
$output->writeln([
......
......@@ -2,6 +2,7 @@
namespace Bolt\Extension\Appolo\Tourinsoft\Synchronisation;
use Bolt\AccessControl\Token\Token;
use Bolt\Application;
use Bolt\Extension\Appolo\Tourinsoft\Storage\Entity\Flux;
......@@ -9,9 +10,15 @@ use Bolt\Extension\Appolo\Tourinsoft\Utils\ContentTypeFile;
use Bolt\Extension\Appolo\Tourinsoft\Utils\Data;
use Bolt\Extension\Appolo\Tourinsoft\Utils\Parser;
use Bolt\Extension\Appolo\Tourinsoft\Utils\Schema;
use Bolt\Provider\DatabaseSchemaServiceProvider;
use Bolt\Provider\StorageServiceProvider;
use Bolt\Storage\Entity\Authtoken;
use Bolt\Storage\Entity\Users;
use Doctrine\DBAL\Exception\TableNotFoundException;
class Synchronisation
{
/**
......@@ -79,6 +86,9 @@ class Synchronisation
$options = $this->config['tourinsoft'];
$options['keys'] = $this->flux->getKeys();
//set la session
$this->setUserSession();
// Parse tourinsoft flux
$parser = new Parser($options);
$fields = $parser->getFields();
......@@ -95,7 +105,6 @@ class Synchronisation
// Add data
$data = new Data($this->application, $this->flux->getCode(), $arrayStream, $options);
$data->insert();
}
/**
......@@ -115,4 +124,35 @@ class Synchronisation
$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 @@
namespace Bolt\Extension\Appolo\Tourinsoft\Utils;
use Bolt\Application;
use Bolt\Exception\InvalidRepositoryException;
use Bolt\Storage\Entity\Builder;
use Bolt\Storage\EntityManager;
use Cocur\Slugify\Slugify;
class Data
......@@ -50,7 +47,6 @@ class Data
$this->deleteData();
$items = $this->getFormattedItems();
$contentType = $this->getContentType();
// $contentType['status'] = 'published';
foreach ($items as $k => $item) {
$this->application['storage.request.save']->action($item, $contentType, null, null, null, null);
......@@ -95,15 +91,9 @@ class Data
}
$data['title'] = $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['datepublish'] = new \DateTimeImmutable();
$data['ownerid'] = 1;
$data['ownerid'] = $this->options['user_id'];
$this->getTranslatedItem($data);
array_push($items, $data);
......@@ -125,12 +115,6 @@ class Data
if ($locale == $this->options['default_locale']) {
$data[$dataKey] = json_encode([]);
$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 {
$dataLocale = $this->getDataForLocales($locale, $data['syndicobjectid']);
if(!empty($dataLocale)) {
......@@ -139,12 +123,6 @@ class Data
} else {
$data[$dataKey] = json_encode([]);
$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
$data['title'] = $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;
}
}
......
......@@ -4,7 +4,9 @@ namespace Bolt\Extension\Appolo\Tourinsoft\Utils;
use Bolt\Application;
use Bolt\Provider\DatabaseSchemaServiceProvider;
use Bolt\Provider\SessionServiceProvider;
use Bolt\Provider\StorageServiceProvider;
use Symfony\Component\HttpFoundation\Session\Session;
class Schema
{
......@@ -40,6 +42,7 @@ class Schema
public function updateCron()
{
$output = $this->schemaManager()->update();
$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