Commit 221d0835 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'release_2.2.0'

parents ca23f617 4562273d
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
image: localhost:5000/unicaen-dev-php7.0-apache
image: localhost:5000/unicaen-dev-php7.4-apache
  
stages:
  - test
  - release

cache:
  paths:
    - vendor/

test:
  stage: test
  script:
    - composer install --dev
    - composer test module/ImportData

release_job:
  stage: release
  image: registry.gitlab.com/gitlab-org/release-cli:latest
+4 −0
Original line number Diff line number Diff line
Journal des modifications
=========================

2.2.0
-----
- Migration apigility => laminas-api-tools.

2.1.0
-----
- Service 'thèse' : ajout du code SISE de la discipline.
+35 −19
Original line number Diff line number Diff line
@@ -4,34 +4,50 @@ sygal-import-ws
Que fait *sygal-import-ws* ?
----------------------------

*sygal-import-ws* est un web service (une API REST) qui interroge les données présentes dans un SI (via des vues 
et des tables en base de données) et les met à disposition pour leur lecture via des requêtes GET.
*sygal-import-ws* est une API REST qui retourne les données présentes dans des tables `SyGAL_*` 
d'Apogée ou de Physalis via des requêtes GET.

Docker
------

Installation
------------

Cf. [`INSTALL.md`](INSTALL.md).
- Obtention de l'image de base Unicaen (construite) à jour

```bash
PHP_VERSION=7.4 ;
docker pull registre.unicaen.fr:5000/unicaen-dev-php${PHP_VERSION}-apache
```

Lancement du web service *pour le dévelopement*
-----------------------------------------------
- Construction de l'image du web service

### Solution 1 : le serveur interne PHP
```bash
docker build \
--build-arg HTTP_PROXY \
--build-arg HTTPS_PROXY \
--build-arg NO_PROXY \
--build-arg PHP_VERSION \
-t sygal-import-ws-image-php${PHP_VERSION} .
```

En phase de développement, la façon la plus simple consiste en l'utilisation 
du serveur interne de php :
- Lancement du web service

```bash
php -S 0.0.0.0:8080 -ddisplay_errors=0 -t public public/index.php
docker-compose up
```

### Solution 2 : Docker

Installation
------------

Cf. [`INSTALL.md`](INSTALL.md).


Lancement du web service *pour le dévelopement*
-----------------------------------------------

Se placer à la racine des sources du ws pour lancer la commande suivante :

```bash
docker-compose up -d --build
docker-compose up --build
```

Vérifier que le container `sygal-import-ws-container` figure bien dans la liste des containers
@@ -81,7 +97,7 @@ Interrogation avec `curl`

Exemple :
```bash
curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/v1/variable
curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/v2/variable
```

Remplacer `xxxx` par le token généré grâce à la commande suivante 
@@ -99,12 +115,12 @@ L'interrogation d'un service sans paramètre va retourner l'intégralité des do

Afin d'obtenir les informations spécifiques à une donnée, il est possible d'ajouter son identifiant, exemple :
```bash
curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/v1/variable/ETB_LIB_NOM_RESP
curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/v2/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/v1/variable | python -m json.tool
curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxx" https://localhost:8443/v2/variable | python -m json.tool
```


@@ -119,7 +135,7 @@ Ce service accepte un paramètre supplémentaire : un identifiant de thèse (sou
les acteurs de cette seule thèse. 
Exemple :
```bash
curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxxx" https://localhost:8443/v1/acteur?these_id=13111
curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxxx" https://localhost:8443/v2/acteur?these_id=13111
```

### `/doctorant`
@@ -128,7 +144,7 @@ Ce service accepte un paramètre supplémentaire : un identifiant de thèse (sou
le doctorant de cette thèse.
Exemple :
```bash
curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxxx" https://localhost:8443/v1/doctorant?these_id=13111
curl --insecure --header "Accept: application/json" --header "Authorization: Basic xxxxx" https://localhost:8443/v2/doctorant?these_id=13111
```


bump-version

deleted100755 → 0
+0 −61
Original line number Diff line number Diff line
#!/usr/bin/env php
<?php

/**
 * Script à utiliser pour mettre à jour la version courante de l'application,
 * configurée dans 'config/autoload/version.global.php'.
 *
 * Usage:  bump-version [<version>]
 *
 * Ex:     bump-version 1.3
 */

require 'vendor/autoload.php';

use Zend\Config\Writer\PhpArray;

$defaultConfig = [
    'unicaen-app' => [
        'app_infos' => [
            'version' => 'Aucune',
        ],
    ]
];

$configFilepath = 'config/autoload/version.global.php';
echo "Fichier de config: $configFilepath" . PHP_EOL;

if (!is_readable($configFilepath)) {
    echo "Fichier de config $configFilepath introuvable ou illisible." . PHP_EOL;
    exit(1);
}

$config = require $configFilepath;

if (! isset($config['unicaen-app']['app_infos']['version'])) {
    $config = array_merge_recursive($config, $defaultConfig);
}
$current = $config['unicaen-app']['app_infos']['version'];
echo sprintf("Version actuelle: %s.", $current) . PHP_EOL;

$new = isset($argv[1]) ? $argv[1] : null;
if ($new === null) {
    $message = "Nouvelle version ? ";
    $new = readline($message);
}

if (version_compare($new, $current) <= 0) {
    echo ":-( Impossible, la nouvelle version doit être supérieure à l'actuelle." . PHP_EOL;
    exit(1);
}

$config['unicaen-app']['app_infos']['version'] = $new;
$config['unicaen-app']['app_infos']['date'] = date('d/m/Y');
$config['comment'] = "Fichier généré le " . date('d/m/Y à H:i:s') . ' avec ' . __FILE__;

$phpArray = new PhpArray();
$phpArray
    ->setUseBracketArraySyntax(true)
    ->toFile($configFilepath, $config);

echo "Nouvelle version inscrite: $new" . PHP_EOL;
+28 −23
Original line number Diff line number Diff line
@@ -11,33 +11,39 @@
    "config": {
        "process-timeout": 5000,
        "allow-plugins": {
            "zendframework/zend-component-installer": true,
            "zfcampus/zf-asset-manager": true
            "laminas/laminas-component-installer": true,
            "laminas-api-tools/api-tools-asset-manager": true,
            "laminas/laminas-dependency-plugin": true
        }
    },
    "require": {
        "php": "^7.4.0",
        "zfcampus/zf-apigility": "^1.3",
        "zfcampus/zf-apigility-documentation": "^1.2",
        "zfcampus/zf-composer-autoloading": "^1.0",
        "zfcampus/zf-development-mode": "^3.0",
        "zfcampus/zf-apigility-doctrine": "^2.1",
        "doctrine/doctrine-orm-module": "^1.1",
        "zendframework/zend-console": "^2.7",
        "unicaen/oracle": "^3.0",
        "doctrine/common": "^2.7",
        "zendframework/zend-mvc-console": "^1.2",
        "zendframework/zend-log": "^2.11",
        "doctrine/doctrine-orm-module": "^1.1",
        "laminas-api-tools/api-tools": "^1.3",
        "laminas-api-tools/api-tools-doctrine": "^2.1",
        "laminas-api-tools/api-tools-documentation": "^1.2",
        "laminas/laminas-console": "^2.7",
        "laminas/laminas-dependency-plugin": "^2.1",
        "laminas/laminas-development-mode": "^3.0",
        "laminas/laminas-log": "^2.9",
        "laminas/laminas-mvc-console": "^1.2",
        "monolog/monolog": "^1.26",
        "webmozart/assert": "^1.9"
        "unicaen/oracle": "^3.0",
        "webmozart/assert": "^1.9",
        "laminas/laminas-component-installer": "^2.7",
        "laminas/laminas-cache": "^2.7.1",
        "laminas/laminas-mvc-i18n": "^1.0"
    },
    "require-dev": {
        "zendframework/zend-developer-tools": "^1.1",
        "zfcampus/zf-apigility-admin": "^1.5",
        "zfcampus/zf-deploy": "^1.2",
        "squizlabs/php_codesniffer": "^3.3",
        "laminas-api-tools/api-tools-admin": "^1.5",
        "laminas/laminas-developer-tools": "^1.1",
        "laminas/laminas-test": "^3.2",
        "phpunit/phpunit": "^6.5",
        "zendframework/zend-test": "^3.2"
        "squizlabs/php_codesniffer": "^3.3",
        "zfcampus/zf-deploy": "^1.2",
        "laminas-api-tools/api-tools-asset-manager": "^1.0",
        "laminas/laminas-composer-autoloading": "^2.0"
    },
    "autoload": {
        "psr-4": {
@@ -57,12 +63,11 @@
    "scripts": {
        "cs-check": "phpcs",
        "cs-fix": "phpcbf",
        "development-disable": "zf-development-mode disable",
        "development-enable": "zf-development-mode enable",
        "development-status": "zf-development-mode status",
        "development-disable": "laminas-development-mode disable",
        "development-enable": "laminas-development-mode enable",
        "development-status": "laminas-development-mode status",
        "serve": "php -S 0.0.0.0:8000 -t public/ public/index.php",
        "test": "phpunit",

        "post-install-cmd": [
            "mkdir -p data/cache && chmod -R 777 data/cache && rm -rf data/cache/*",
            "mkdir -p data/DoctrineModule/cache && chmod -R 777 data/DoctrineModule/cache && rm -rf data/DoctrineModule/cache/*",
Loading