Commit b8df05f1 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Mise à jour du contrat d'API

parent e3b079b9
Loading
Loading
Loading
Loading
+53 −39
Original line number Diff line number Diff line
openapi: '3.1.0'
openapi: '3.0.1'
info:
  description: |
    Il s'agit de l'API présentée par l'application de 3ème cycle pour gérer les échanges avec Pegase. 
    Dans cette version initiale une seul flux est géré

    __Inscriptions administratives :__ ce flux permet de pousser les inscriptions administratives des doctorants de Pegase vers l'application de 3ème cycle
    __Inscriptions administratives :__ ce flux permet de pousser les inscriptions administratives validées des doctorants de Pegase vers l'application de 3ème cycle
    La saisie d'une école doctorale est l'information qui permet de considérer une inscription administrative comme celle d'un doctorant.
  title: Connecteur 3eme cycle pour Pegase v0
  version: '0.1'
servers:
  - url: https://api.server.test/v1
  - url: /api/v1
paths:
  /inscription-administrative:
   post:
@@ -18,7 +19,7 @@ paths:
      description: Ajout d'une inscription administrative
      operationId: creerInscriptionAdministrative
      requestBody:
        description: Les informations de l'inscription administrative pour le doctorant
        description: Les informations de l'inscription administrative pour le doctorant (en utf-8)
        required: true
        content:
          application/json:
@@ -28,19 +29,36 @@ paths:
      - idTokenAuth: []
      responses:
        201:
          description: Inscription administrative reçue
        422:
          description: erreur de validation
          description: Inscription administrative reçue (body vide, car réservé aux erreurs)
          content:
              application/json:
                schema:
                  type: string
        403:
          description: non autorise
          description: non autorise (détails de l'erreur dans le body - max 2000 caractères)
          content:
              application/json:
                schema:
                  type: string
        422:
          description: donnees invalides (détails de l'erreur dans le body - max 2000 caractères)
          content:
              application/json:
                schema:
                  type: string
        500:
          description: erreur serveur
          description: erreur serveur (détails de l'erreur dans le body - max 2000 caractères)
          content:
              application/json:
                schema:
                  type: string
components:
 securitySchemes:
  # Authorization: Bearer id.token.
  idTokenAuth:
    type: http
    scheme: basic
    description: connexion avec login / mot de passe.
 schemas:
  InscriptionAdministrative:
    type: object
@@ -53,9 +71,11 @@ components:
      id:
        type: string
        description: identifiant Pegase unique de l'inscription. Ceci permettra à l'appli 3e cycle d'identifier l'inscription
        example: codeEtablissement@codeApprenant@codeChemin@codePeriode (ETAB00@2023004@LIC-MAI>LIC-MAI-L1@PER-2023)
      instancePegase:
        type: string
        description: identifiant de l'instance de Pegase émettrice. Ceci servira lors des flux retour
        example: uphf (Université Polytechnique des Hauts de France), univ-jfc (INUC), etc.
      apprenant:
        $ref: '#/components/schemas/Apprenant'
      # dans cette version l'ensemble des incriptions de l'apprenant pour la période est transmis. VOIR SI ON LIMITE A L'INSCRIPTION EN DOCTORANT
@@ -77,6 +97,7 @@ components:
      code:
        type: string
        description: le code Pegase de l'apprenant
        example: 2023004
      INE:
        type: string
        description: Le numéro INE de l'apprenant si connu
@@ -119,7 +140,7 @@ components:
        type: string
        format: email
        nullable: true
        description: Adresse de messagerie électronique d'urgence
        description: Adresse de messagerie électronique d'urgence (vide pour le moment)
      telephonePersonnel:
        type: string
        nullable: true
@@ -150,7 +171,7 @@ components:
    properties:
      noCandidat:
        type: string
        description: Le numéro de candidature
        description: Le numéro de la candidature associé à l'origine de la candidature.
      origine:
        description: L'origine de la candidature de l'étudiant.
        enum:
@@ -162,15 +183,17 @@ components:
        - MONMASTER
      formation:
        type: string
        description: le libellé de la formation racine de la maquette de formation.
        example: Licence de Mathématiques et d'Informatiques (code LIC-MAI)
        nullable: true
        description: le libellé de la formation
      chemin:
        type: string
        description: liste des codes ObjetFormation ou Groupement depuis la Formation racine incluse.
        example: LICENCE_MAI>LICENCE-MAI-L1
        example: LIC-MAI>LIC-MAI-L1
      codeStructureEtablissementDuChemin:
        type: string
        description: Le code structure de l’établissement pour le chemin
        description: Le code structure Pegase de l’établissement pour le chemin.
        example: ETAB00
      periode:
        $ref: '#/components/schemas/Periode'
      principale:
@@ -195,14 +218,14 @@ components:
          - SANS
          - SEMESTRE
          - ANNEE
        description: La césure
        description: Indique si le doctorant est en césure
      mobilite:
        type: string
        enum:
          - SANS
          - ENTRANTE
          - SORTANTE
        description: La mobilité
        description: Indique si le doctorant est en mobilité
      ecoleDoctorale:
        type: string
        description: code de la nomenclature école doctorale
@@ -227,24 +250,20 @@ components:
    properties:
      dateDeNaissance:
        type: string
        format: date
        description: La date de naissance au format AAAA-MM-JJ
      paysDeNaissance:
        type: string
        pattern: '^[A-Z]{2}$'
        description: |
          Le code pays du pays de naissance (code ISO-alpha 2)
          Ex : 'FR' = France
        example: FR
        description: Le code pays du pays de naissance (code ISO-alpha 2)
        example: 'FR'
      libellePaysDeNaissance:
        type: string
        description: |
          Le libelle du pays de naissance
        description: Le libelle du pays de naissance
        example: France
      communeDeNaissance:
        type: string
        description: |
          Le code INSEE de la commune de naissance en France
          Ex : 67482 = Strasbourg
        description: Le code INSEE de la commune de naissance en France
        nullable: true
        example: 67482
      libelleCommuneDeNaissance:
@@ -269,11 +288,12 @@ components:
        pattern: '^[A-Z]{2}$'
        nullable: true
        description: Le code pays associé à la deuxième nationalité (code ISO-alpha 2)
        example: 'UA'
        example: 'DE'
      libelleDeuxiemeNationalite:
        type: string
        nullable: true
        description: Le libelle pays associé à la deuxième nationalité issu de la nomenclature Pays et Nationalités
        example: 'ALLEMAGNE'
      dateDObtentionDeLaDeuxiemeNationalite:
        type: string
        format: date
@@ -333,27 +353,17 @@ components:
    required:
      - code
      - libelle
      - dateDebut
      - dateFin
      - anneeUniversitaire
    properties:
      code:
        type: string
        description: le code de la période
        example: PER-2023
      libelle:
        type: string
        description: Le libellé de la période de mise en œuvre.
      dateDebut:
        type: string
        format: date
        description: date de début de validité au format AAAA-MM-JJ
      dateFin:
        type: string
        format: date
        description: date de fin de validité au format AAAA-MM-JJ
      anneeUniversitaire:
        type: integer
        nullable: true
        description: L'année universitaire associée à la période au format AAAA.

  BourseOuAideFinanciere:
@@ -365,10 +375,12 @@ components:
    properties:
      code:
        type: string
        description: le code
        description: le code Pegase
        example: AID001
      libelle:
        type: string
        description: le libellé d'affichage
        example: Bourse sur critères sociaux

  RegimeInscription:
    type: object
@@ -379,7 +391,9 @@ components:
    properties:
      code:
        type: string
        description: le code
        description: le code Pegase
        example: REG001
      libelle:
        type: string
        description: le libellé d'affichage
        example: Formation initiale
+0 −2
Original line number Diff line number Diff line
@@ -43,8 +43,6 @@ class InscriptionExtractor extends AbstractExtractor
            // par le nombre de périodes.
            'periode_code' => $periode['code'],
            'periode_libelle' => $periode['libelle'],
            'periode_date_debut' => $periode['dateDebut'],
            'periode_date_fin' => $periode['dateFin'],
            'periode_annee_universitaire' => $periode['anneeUniversitaire'],
        ]);
    }