Skip to content
Snippets Groups Projects
Commit 86558dba authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'import-etab-dir-these-#16496'

parents 29dadb36 3f1ad962
No related branches found
No related tags found
No related merge requests found
...@@ -21,27 +21,27 @@ et les met à disposition pour leur lecture via des requêtes GET. ...@@ -21,27 +21,27 @@ et les met à disposition pour leur lecture via des requêtes GET.
S'il s'agit de la première installation du ws, vous devez lancer la commande suivante pour obtenir les sources : S'il s'agit de la première installation du ws, vous devez lancer la commande suivante pour obtenir les sources :
```bash ```bash
$ git clone git@git.unicaen.fr:dsi/sygal-import-ws.git git clone git@git.unicaen.fr:dsi/sygal-import-ws.git
$ cd sygal-import-ws cd sygal-import-ws
``` ```
### Installation d'une version précise ### Installation d'une version précise
Lancer la commande suivante pour obtenir la liste des versions disponibles du ws. Lancer la commande suivante pour obtenir la liste des versions disponibles du ws.
```bash ```bash
$ git fetch && git fetch --tags && git tag git fetch && git fetch --tags && git tag
``` ```
Et si la version la plus récente est par exemple la `1.0.0`, utilisez la commande suivante pour "installer" sur cette version : Et si la version la plus récente est par exemple la `1.0.0`, utilisez la commande suivante pour "installer" sur cette version :
```bash ```bash
$ git checkout 1.0.0 git checkout 1.0.0
``` ```
### Installation des dépendances ### Installation des dépendances
Installez les packages requis par le ws via [Composer](https://getcomposer.org/) comme ceci : Installez les packages requis par le ws via [Composer](https://getcomposer.org/) comme ceci :
```bash ```bash
$ composer install --no-suggest --optimize-autoloader composer install --no-suggest --optimize-autoloader
``` ```
### Fichier "users.htpasswd" ### Fichier "users.htpasswd"
...@@ -54,12 +54,12 @@ S'il s'agit de la première installation du ws, placez-vous dans le répertoire ...@@ -54,12 +54,12 @@ S'il s'agit de la première installation du ws, placez-vous dans le répertoire
commande suivante pour créer le fichier "users.htpasswd" contenant un utilisateur `sygal-app` dont le mot de passe commande suivante pour créer le fichier "users.htpasswd" contenant un utilisateur `sygal-app` dont le mot de passe
va vous être demandé : va vous être demandé :
```bash ```bash
$ htpasswd -c users.htpasswd sygal-app htpasswd -c users.htpasswd sygal-app
``` ```
Si vous manquez d'idée pour le mot de passe, utilsez la commande suivante : Si vous manquez d'idée pour le mot de passe, utilsez la commande suivante :
```bash ```bash
$ pwgen 16 1 --symbols --secure pwgen 16 1 --symbols --secure
``` ```
### Fichiers de config ### Fichiers de config
...@@ -81,13 +81,13 @@ Une fois ces fichiers complétés, changer leur extension `.php.dist` en `.php`. ...@@ -81,13 +81,13 @@ Une fois ces fichiers complétés, changer leur extension `.php.dist` en `.php`.
Passez en mode développement pour ouvrir l'accès à l'interface Apigility de modification du WS : Passez en mode développement pour ouvrir l'accès à l'interface Apigility de modification du WS :
```bash ```bash
$ composer development-enable composer development-enable
``` ```
Cette fonctionnalité est réservée aux développeurs du WS et est **INTERDIT EN PRODUCTION**. Cette fonctionnalité est réservée aux développeurs du WS et est **INTERDIT EN PRODUCTION**.
Assurez-vous de bien désactiver le mode développement : Assurez-vous de bien désactiver le mode développement :
```bash ```bash
$ composer development-disable composer development-disable
``` ```
...@@ -100,7 +100,7 @@ En phase de développement, la façon la plus simple consiste en l'utilisation ...@@ -100,7 +100,7 @@ En phase de développement, la façon la plus simple consiste en l'utilisation
du serveur interne de php : du serveur interne de php :
```bash ```bash
$ php -S 0.0.0.0:8080 -ddisplay_errors=0 -t public public/index.php php -S 0.0.0.0:8080 -ddisplay_errors=0 -t public public/index.php
``` ```
### Solution 2 : Docker ### Solution 2 : Docker
...@@ -108,14 +108,14 @@ $ php -S 0.0.0.0:8080 -ddisplay_errors=0 -t public public/index.php ...@@ -108,14 +108,14 @@ $ php -S 0.0.0.0:8080 -ddisplay_errors=0 -t public public/index.php
Se placer à la racine des sources du ws pour lancer la commande suivante : Se placer à la racine des sources du ws pour lancer la commande suivante :
```bash ```bash
$ docker-compose up -d --build docker-compose up -d --build
``` ```
Vérifier que le container `sygal-import-ws-container` figure bien dans la liste des containers Vérifier que le container `sygal-import-ws-container` figure bien dans la liste des containers
lancés listés par la commande suivante (cf. colonne `NAMES`) : lancés listés par la commande suivante (cf. colonne `NAMES`) :
```bash ```bash
$ docker ps docker ps
``` ```
Le port sur lequel écoute le ws est indiqué dans la colonne `PORTS`. Le port sur lequel écoute le ws est indiqué dans la colonne `PORTS`.
...@@ -140,25 +140,30 @@ Chaque vue en base de données peut être interrogée via un service dédié : ...@@ -140,25 +140,30 @@ Chaque vue en base de données peut être interrogée via un service dédié :
Exemple : Exemple :
```bash ```bash
$ curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/variable curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/variable
``` ```
Remplacer `xxxx` par le token généré grâce à la commande suivante Remplacer `xxxx` par le token généré grâce à la commande suivante
(le mot de passe est celui choisi lors de la commande `htpasswd -c users.htpasswd sygal-app`) : (le mot de passe est celui choisi lors de la commande `htpasswd -c users.htpasswd sygal-app`) :
```bash ```bash
$ echo -n 'sygal-app:motdepasse' | base64 echo -n 'sygal-app:motdepasse' | base64
``` ```
Il se peut que vous soyez obligé de contourner le proxy en faisant ceci : Il se peut que vous soyez obligé de contourner le proxy en faisant ceci :
```bash ```bash
$ export no_proxy=localhost export no_proxy=localhost
``` ```
L'interrogation d'un service sans paramètre va retourner l'intégralité des données concernées. L'interrogation d'un service sans paramètre va retourner l'intégralité des données concernées.
Afin d'obtenir les informations spécifiques à une donnée, il est possible d'ajouter son identifiant, exemple : Afin d'obtenir les informations spécifiques à une donnée, il est possible d'ajouter son identifiant, exemple :
```bash ```bash
$ curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/variable/ETB_LIB_NOM_RESP curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/variable/ETB_LIB_NOM_RESP
```
Pour mettre en forme le JSON retourné et faciliter la lecture, une solution est d'utiliser `python -m json.tool`:
```bash
curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/variable | python -m json.tool
``` ```
...@@ -166,3 +171,13 @@ $ curl --insecure --header "Accept: application/json" --header "Authorization: B ...@@ -166,3 +171,13 @@ $ curl --insecure --header "Accept: application/json" --header "Authorization: B
* Le web service ne répond qu'aux requêtes de type GET. * Le web service ne répond qu'aux requêtes de type GET.
* Le web service retourne du json seulement. * Le web service retourne du json seulement.
## Service Acteur
Ce service accepte un paramètre supplémentaire : un identifiant de thèse (source code) peut être spécifié pour obtenir
les acteurs de cette seule thèse.
Exemple :
```bash
curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxxx" https://localhost:8443/acteur?these_id=13111
```
...@@ -7,6 +7,9 @@ expose_php = Off ...@@ -7,6 +7,9 @@ expose_php = Off
#error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE #error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
display_errors = Off display_errors = Off
# NB: ne peut-être supérieur au memory_limit du php.ini
memory_limit = 256M
opcache.enable = 0 opcache.enable = 0
#upload_max_filesize = 51M #upload_max_filesize = 51M
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
namespace ImportData\V1\Entity\Db; namespace ImportData\V1\Entity\Db;
/** /**
* Acteur * Acteur
*/ */
...@@ -13,10 +12,9 @@ class Acteur ...@@ -13,10 +12,9 @@ class Acteur
protected $theseId; protected $theseId;
protected $roleId; protected $roleId;
protected $individuId; protected $individuId;
protected $acteurEtablissementId;
protected $codeRoleJury; protected $codeRoleJury;
protected $libRoleJury; protected $libRoleJury;
protected $codeEtablissement;
protected $libEtablissement;
protected $codeQualite; protected $codeQualite;
protected $libQualite; protected $libQualite;
protected $temoinHDR; protected $temoinHDR;
...@@ -105,65 +103,52 @@ class Acteur ...@@ -105,65 +103,52 @@ class Acteur
/** /**
* @return mixed * @return mixed
*/ */
public function getCodeRoleJury() public function getActeurEtablissementId()
{ {
return $this->codeRoleJury; return $this->acteurEtablissementId;
} }
/** /**
* @param mixed $codeRoleJury * @param mixed $acteurEtablissementId
* @return Acteur
*/ */
public function setCodeRoleJury($codeRoleJury) public function setActeurEtablissementId($acteurEtablissementId)
{ {
$this->codeRoleJury = $codeRoleJury; $this->acteurEtablissementId = $acteurEtablissementId;
}
/** return $this;
* @return mixed
*/
public function getLibRoleJury()
{
return $this->libRoleJury;
}
/**
* @param mixed $libRoleJury
*/
public function setLibRoleJury($libRoleJury)
{
$this->libRoleJury = $libRoleJury;
} }
/** /**
* @return mixed * @return mixed
*/ */
public function getCodeEtablissement() public function getCodeRoleJury()
{ {
return $this->codeEtablissement; return $this->codeRoleJury;
} }
/** /**
* @param mixed $codeEtablissement * @param mixed $codeRoleJury
*/ */
public function setCodeEtablissement($codeEtablissement) public function setCodeRoleJury($codeRoleJury)
{ {
$this->codeEtablissement = $codeEtablissement; $this->codeRoleJury = $codeRoleJury;
} }
/** /**
* @return mixed * @return mixed
*/ */
public function getLibEtablissement() public function getLibRoleJury()
{ {
return $this->libEtablissement; return $this->libRoleJury;
} }
/** /**
* @param mixed $libEtablissement * @param mixed $libRoleJury
*/ */
public function setLibEtablissement($libEtablissement) public function setLibRoleJury($libRoleJury)
{ {
$this->libEtablissement = $libEtablissement; $this->libRoleJury = $libRoleJury;
} }
/** /**
...@@ -229,6 +214,4 @@ class Acteur ...@@ -229,6 +214,4 @@ class Acteur
{ {
$this->temoinRapport = $temoinRapport; $this->temoinRapport = $temoinRapport;
} }
} }
\ No newline at end of file
...@@ -2,16 +2,15 @@ ...@@ -2,16 +2,15 @@
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="ImportData\V1\Entity\Db\Acteur" table="SYGAL_ACTEUR"> <entity name="ImportData\V1\Entity\Db\Acteur" table="SYGAL_ACTEUR_2">
<id name="id" type="string" column="ID"/> <id name="id" type="string" column="ID"/>
<field name="sourceId" type="string" column="SOURCE_ID" length="6" nullable="true"/> <field name="sourceId" type="string" column="SOURCE_ID" length="6" nullable="true"/>
<field name="theseId" type="integer" column="THESE_ID" nullable="true"/> <field name="theseId" type="integer" column="THESE_ID" nullable="true"/>
<field name="roleId" type="string" column="ROLE_ID" length="1" nullable="true"/> <field name="roleId" type="string" column="ROLE_ID" length="1" nullable="true"/>
<field name="codeRoleJury" type="string" column="COD_ROJ_COMPL" length="1" nullable="true"/> <field name="codeRoleJury" type="string" column="COD_ROJ_COMPL" length="1" nullable="true"/>
<field name="libRoleJury" type="string" column="LIB_ROJ_COMPL" length="40" nullable="true"/> <field name="libRoleJury" type="string" column="LIB_ROJ_COMPL" length="40" nullable="true"/>
<field name="individuId" type="string" column="INDIVIDU_ID" nullable="true"/> <field name="individuId" type="string" column="INDIVIDU_ID" length="40" nullable="true"/>
<field name="codeEtablissement" type="string" column="COD_ETB" length="8" nullable="true"/> <field name="acteurEtablissementId" type="string" column="ACTEUR_ETABLISSEMENT_ID" length="40" nullable="true"/>
<field name="libEtablissement" type="string" column="LIB_ETB" length="40" nullable="true"/>
<field name="codeQualite" type="string" column="COD_CPS" length="10" nullable="true"/> <field name="codeQualite" type="string" column="COD_CPS" length="10" nullable="true"/>
<field name="libQualite" type="string" column="LIB_CPS" length="40" nullable="true"/> <field name="libQualite" type="string" column="LIB_CPS" length="40" nullable="true"/>
<field name="temoinHDR" type="string" column="TEM_HAB_RCH_PER" length="1" nullable="true"/> <field name="temoinHDR" type="string" column="TEM_HAB_RCH_PER" length="1" nullable="true"/>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment