openapi: 3.0.0 info: description: 'Api du service Collaborateur, utilisée pour récupérer les données des collaborateurs d''Apside' version: 1.1.3 title: Service Collaborateur API contact: email: lilian.gayet@apside-groupe.com paths: /collaborateurs: get: tags: - collaborateur summary: rechercher tous les collaborateurs operationId: ChercherCollab description: | Cette requette demande de récupérer tous les collaborateurs existant parameters: - $ref: '#/components/parameters/CollabsId' - $ref: '#/components/parameters/Anciens' - $ref: '#/components/parameters/Role' - $ref: '#/components/parameters/BuIds' responses: '200': description: résultats de la recherche content: application/json: schema: type: array items: $ref: '#/components/schemas/Collaborateur' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Collab' post: tags: - collaborateur summary: ajout d'un nouveau collaborateur description: '' operationId: AjoutCollab requestBody: content: application/json: schema: $ref: '#/components/schemas/NouveauCollaborateur' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' '/collaborateurs/bu/{buId}': get: tags: - collaborateur summary: rechercher tous les collaborateurs d'un Business-unit operationId: ChercherCollabBU description: | Cette requette demande de récupérer tous les collaborateurs existant au sein d'une business-unit parameters: - $ref: '#/components/parameters/BuId' - $ref: '#/components/parameters/Role' responses: '200': description: résultats de la recherche content: application/json: schema: type: array items: $ref: '#/components/schemas/Collaborateur' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Collab' '/collaborateurs/agence/{agenceId}': get: tags: - collaborateur summary: rechercher tous les collaborateurs d'un Business-unit operationId: ChercherCollabAgence description: | Cette requette demande de récupérer tous les collaborateurs existant au sein d'une agence parameters: - $ref: '#/components/parameters/AgenceId' - $ref: '#/components/parameters/Role' responses: '200': description: résultats de la recherche content: application/json: schema: type: array items: $ref: '#/components/schemas/Collaborateur' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Collab' '/collaborateurs/referent/{refId}': get: tags: - collaborateur summary: rechercher tous les collaborateurs d'un référent operationId: ChercherCollabRef description: | Cette requette demande de récupérer tous les collaborateurs d'un référent parameters: - $ref: '#/components/parameters/RefId' responses: '200': description: résultats de la recherche content: application/json: schema: type: array items: $ref: '#/components/schemas/Collaborateur' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Collab' '/collaborateurs/{collabId}': get: tags: - collaborateur summary: rechercher un collaborateur operationId: ChercherCollabId description: | rechercher un collaborateur à l'aide de son identifiant parameters: - $ref: '#/components/parameters/CollabId' responses: '200': description: résultat de la recherche content: application/json: schema: $ref: '#/components/schemas/Collaborateur' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Id' put: tags: - collaborateur summary: mettre à jour un collaborateur description: '' operationId: MajCollab requestBody: content: application/json: schema: $ref: '#/components/schemas/NouveauCollaborateur' parameters: - $ref: '#/components/parameters/CollabId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' patch: tags: - collaborateur summary: mettre à jour un collaborateur description: '' operationId: MajCollabpatch requestBody: content: application/json: schema: $ref: '#/components/schemas/NouveauCollaborateur' parameters: - $ref: '#/components/parameters/CollabId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' '/collaborateurs/{mailApside}': get: tags: - collaborateur summary: rechercher un collaborateur operationId: ChercherCollabMail description: | rechercher un collaborateur à l'aide de son mail apside parameters: - $ref: '#/components/parameters/MailApside' responses: '200': description: résultat de la recherche content: application/json: schema: $ref: '#/components/schemas/Collaborateur' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Id' put: tags: - collaborateur summary: mettre à jour un collaborateur description: '' operationId: MajCollabMail requestBody: content: application/json: schema: $ref: '#/components/schemas/NouveauCollaborateur' parameters: - $ref: '#/components/parameters/MailApside' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' patch: tags: - collaborateur summary: mettre à jour un collaborateur description: '' operationId: MajCollabpatchMail requestBody: content: application/json: schema: $ref: '#/components/schemas/NouveauCollaborateur' parameters: - $ref: '#/components/parameters/MailApside' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' '/collaborateurs/{collabId}/referents': get: tags: - collaborateur summary: rechercher les référents operationId: ChercherRefCollabId description: | rechercher les référents d'un collaborateur à l'aide de son identifiant parameters: - $ref: '#/components/parameters/CollabId' responses: '200': description: résultat de la recherche content: application/json: schema: type: array items: $ref: '#/components/schemas/Collaborateur' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Id' '/collaborateurs/{mailApside}/referents': get: tags: - collaborateur summary: rechercher les référents operationId: ChercherRefCollabMail description: | rechercher les référents d'un collaborateur à l'aide de son mail apside parameters: - $ref: '#/components/parameters/MailApside' responses: '200': description: résultat de la recherche content: application/json: schema: type: array items: $ref: '#/components/schemas/Collaborateur' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Mail' '/collaborateurs/{collabId}/referent': get: tags: - collaborateur summary: rechercher le référent actuel operationId: ChercherRefActuelId description: | rechercher le référent actuel du collaborateur à l'aide de son identifiant parameters: - $ref: '#/components/parameters/CollabId' responses: '200': description: résultat de la recherche content: application/json: schema: $ref: '#/components/schemas/Collaborateur' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Id' '/collaborateurs/{mailApside}/referent': get: tags: - collaborateur summary: rechercher le référent actuel operationId: ChercherRefActuelMail description: | rechercher le référent actuel du collaborateur l'aide de son mail apside parameters: - $ref: '#/components/parameters/MailApside' responses: '200': description: résultat de la recherche content: application/json: schema: $ref: '#/components/schemas/Collaborateur' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Mail' '/collaborateurs/{collabId}/PeriodeEssai': put: tags: - periode d'essai summary: mettre à jour une péridode d'essai description: | La différence entre la première et celle en cours est que, si une période d'essai est prolongee, il y en a techniquement 2 operationId: MajPE requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvellePeriodeEssai' parameters: - $ref: '#/components/parameters/CollabId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' patch: tags: - periode d'essai summary: mettre à jour une péridode d'essai en cours description: | La différence entre la première et celle en cours est que, si une période d'essai est prolongee, il y en a techniquement 2 operationId: MajPEPatch requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvellePeriodeEssai' parameters: - $ref: '#/components/parameters/CollabId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' '/collaborateurs/{collabId}/PremierePeriodeEssai': put: tags: - periode d'essai summary: mettre à jour la première partie de la péridode d'essai description: | La différence entre la première et celle en cours est que, si une période d'essai est prolongee, il y en a techniquement 2 operationId: Maj1PE requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvellePeriodeEssai' parameters: - $ref: '#/components/parameters/CollabId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' patch: tags: - periode d'essai summary: mettre à jour la première partie de la péridode d'essai description: | La différence entre la première et celle en cours est que, si une période d'essai est prolongee, il y en a techniquement 2 operationId: Maj1PEPatch requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvellePeriodeEssai' parameters: - $ref: '#/components/parameters/CollabId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' /agences: get: tags: - agence summary: rechercher toutes les agences operationId: ChercherAgences description: | Cette requette demande de récupérer toutes les agences existantes responses: '200': description: résultats de la recherche content: application/json: schema: type: array items: $ref: '#/components/schemas/Agence' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Agence' post: tags: - agence summary: ajout d'une nouvelle agence description: '' operationId: AjoutAgence" requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvelleAgence' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' '/agences/{agenceId}': get: tags: - agence summary: rechercher une adresse operationId: ChercherAgence description: | rechercher une agence à l'aide de son identifiant parameters: - $ref: '#/components/parameters/AgenceId' responses: '200': description: résultat de la recherche content: application/json: schema: $ref: '#/components/schemas/Agence' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Id' put: tags: - agence summary: mettre à jour une agence description: '' operationId: MajAgence requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvelleAgence' parameters: - $ref: '#/components/parameters/AgenceId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' patch: tags: - agence summary: mettre à jour une agence description: '' operationId: MajAgencepatch requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvelleAgence' parameters: - $ref: '#/components/parameters/AgenceId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' /bus: get: tags: - business-unit summary: rechercher toutes les business-units operationId: ChercherBUs description: | Cette requette demande de récupérer toutes les business-units existantes responses: '200': description: résultats de la recherche content: application/json: schema: type: array items: $ref: '#/components/schemas/BU' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404BU' post: tags: - business-unit summary: ajout d'une nouvelle business-unit description: '' operationId: AjoutBU requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvelleBU' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' '/bus/{buId}': get: tags: - business-unit summary: rechercher une business-unit operationId: ChercherBU description: | rechercher une business-unit à l'aide de son identifiant parameters: - $ref: '#/components/parameters/BuId' responses: '200': description: résultat de la recherche content: application/json: schema: $ref: '#/components/schemas/BU' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Id' put: tags: - business-unit summary: mettre à jour une business-unit description: '' operationId: MajBU requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvelleBU' parameters: - $ref: '#/components/parameters/BuId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' patch: tags: - business-unit summary: mettre à jour une business-unit description: '' operationId: MajBUpatch requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvelleBU' parameters: - $ref: '#/components/parameters/BuId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' /adresses: get: tags: - adresse summary: rechercher toutes les adresses operationId: ChercherAdresses description: | Cette requette demande de récupérer toutes les adresses existantes responses: '200': description: résultats de la recherche content: application/json: schema: type: array items: $ref: '#/components/schemas/Adresse' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Adresse' post: tags: - adresse summary: ajout d'une nouvelle adresse description: '' operationId: AjoutAdresse requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvelleAdresse' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' '/adresses/{adresseId}': get: tags: - adresse summary: rechercher une adresse operationId: ChercherAdresse description: | rechercher une adresse à l'aide de son identifiant parameters: - $ref: '#/components/parameters/AdresseId' responses: '200': description: résultat de la recherche content: application/json: schema: $ref: '#/components/schemas/Adresse' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Id' put: tags: - adresse summary: mettre à jour une adresse description: '' operationId: MajAdresse requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvelleAdresse' parameters: - $ref: '#/components/parameters/AdresseId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' patch: tags: - adresse summary: mettre à jour une adresse description: '' operationId: MajAdressepatch requestBody: content: application/json: schema: $ref: '#/components/schemas/NouvelleAdresse' parameters: - $ref: '#/components/parameters/AdresseId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' /projets: get: tags: - projet summary: rechercher toutes les projets operationId: ChercherProjets description: | Cette requette demande de récupérer tous les projets existants responses: '200': description: résultats de la recherche content: application/json: schema: type: array items: $ref: '#/components/schemas/Projet' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Projet' post: tags: - projet summary: ajout d'un nouveau projet description: '' operationId: AjoutProjet requestBody: content: application/json: schema: $ref: '#/components/schemas/NouveauProjet' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' '/projets/{nomClient}': get: tags: - projet summary: rechercher tous les projets operationId: ChercherProjetsClient description: | Cette requette demande de récupérer tous les projets existants parameters: - $ref: '#/components/parameters/NomClient' responses: '200': description: résultats de la recherche content: application/json: schema: type: array items: $ref: '#/components/schemas/Projet' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Projet' '/projets/{projetId}': get: tags: - projet summary: rechercher un projet operationId: ChercherProjet description: | rechercher un projet à l'aide de son identifiant parameters: - $ref: '#/components/parameters/ProjetId' responses: '200': description: résultat de la recherche content: application/json: schema: $ref: '#/components/schemas/Projet' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404Id' put: tags: - projet summary: mettre à jour un projet description: '' operationId: MajProjet requestBody: content: application/json: schema: $ref: '#/components/schemas/NouveauProjet' parameters: - $ref: '#/components/parameters/ProjetId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' patch: tags: - projet summary: mettre à jour un projet description: '' operationId: MajProjetpatch requestBody: content: application/json: schema: $ref: '#/components/schemas/NouveauProjet' parameters: - $ref: '#/components/parameters/ProjetId' responses: '200': $ref: '#/components/responses/200' '400': $ref: '#/components/responses/400' components: parameters: CollabId: in: path name: collabId description: Ce paramêtre permet de renseigner l'identifiant du collaborateur recherché required: true schema: type: string format: uuid CollabsId: in: query name: collabsId description: Ce paramêtre permet de renseigner la liste des identifiants des collaborateurs recherchés required: false schema: type: array items: type: string format: uuid MailApside: in: path name: mailApside description: Ce paramêtre permet de renseigner le mail apside du collaborateur recherché /!\ "@" doit être changé en "%40" /!\ required: true schema: type: string format: mail example: - john.doe@apside-groupe.com - doe@apside.fr RefId: in: path name: refId description: Ce paramêtre permet de renseigner l'identifiant du référent recherché required: true schema: type: string format: uuid AgenceId: in: path name: agenceId description: Ce paramêtre permet de renseigner l'identifiant de l'agence recherchée required: true schema: type: integer format: int64 example: 1 BuId: in: path name: buId description: Ce paramêtre permet de renseigner l'identifiant de la business-unit recherchée required: true schema: type: integer format: int64 example: 1 BuIds: in: query name: buIds description: Ce paramêtre permet de renseigner la liste des identifiants des BU auxquelles sont rattachés les collaborateur schema: type: array items: type: integer format: int64 AdresseId: in: path name: adresseId description: Ce paramêtre permet de renseigner l'identifiant de l'adresse recherchée required: true schema: type: integer format: int64 example: 1 ProjetId: in: path name: projetId description: Ce paramêtre permet de renseigner l'identifiant du projet recherché required: true schema: type: integer format: int64 example: 1 Anciens: in: query name: ancienCollaborateur description: Ce paramêtre permet de filtrer les anciens collaborateurs qui ne sont plus chez Apside required: false schema: type: boolean Referent: in: query name: referent description: Ce paramêtre permet de filtrer les collaborateurs référents required: false schema: type: boolean Date: in: query name: date description: Ce paramêtre permet de renseigner la date recherchée required: true schema: type: string format: Date example: '2020-01-01' Role: in: query name: roles description: 'Ce paramêtre permet de renseigner la liste des rôles des collaborateurs à récupérer. Si elle est vide ou null, on récupère tout le monde.' required: false schema: type: array items: type: string enum: - Collaborateur - Assistant - RH - CP - TechLead - RA - Commercial - Delivery NomClient: in: path name: nomClient description: Ce paramêtre permet de renseigner le nom du client lié au projet required: true schema: type: string example: - Harmonie Mutuelle schemas: Collaborateur: type: object required: - id - nom - prenom properties: id: type: string format: uuid nom: type: string prenom: type: string genre: $ref: '#/components/schemas/Genre' dateNaissance: type: string format: date nbEnfants: type: integer format: int32 adresse: $ref: '#/components/schemas/Adresse' telephone: type: string mailPerso: type: string format: email mailApside: type: string format: email statut: $ref: '#/components/schemas/Statut' fonctions: type: array items: $ref: '#/components/schemas/Fonction' businessUnit: $ref: '#/components/schemas/BU' referent: $ref: '#/components/schemas/Collaborateur' parrain: $ref: '#/components/schemas/Collaborateur' projets: type: array items: $ref: '#/components/schemas/Projet' technologiesPref: type: array items: $ref: '#/components/schemas/Technologie' periodeEssai: type: array items: $ref: '#/components/schemas/PeriodeEssai' dateArrivee: type: string format: date dateDepart: type: string format: date Adresse: type: object properties: id: type: integer format: int64 rue: type: string ville: type: string codePostal: type: string pays: type: string dateDebut: type: string format: date dateFin: type: string format: date Agence: type: object properties: id: type: integer format: int64 nom: type: string bus: type: array items: $ref: '#/components/schemas/BU' BU: type: object properties: id: type: integer format: int64 nom: type: string agence: $ref: '#/components/schemas/Agence' Fonction: type: object properties: code: type: string intitule: type: string Genre: type: string enum: - FEMININ - MASCULIN - NEUTRE PeriodeEssai: type: object properties: id: type: integer format: int64 dateDebut: type: string format: date dateFinPrev: type: string format: date dateFinEffect: type: string format: date commentaire: type: string issuePE: $ref: '#/components/schemas/IssuePE' IssuePE: type: string enum: - VALIDEE - PROLONGEE_COLLAB - PROLONGEE_APSIDE - ARRETEE_COLLAB - ARRETEE_APSIDE Projet: type: object properties: id: type: integer format: int64 nom: type: string client: type: string debut: type: string format: date fin: type: string format: date description: type: string Statut: type: string enum: - CADRE - NON-CADRE - ALTERNANT - STAGIAIRE Technologie: type: object properties: code: type: string intitule: type: string NouveauCollaborateur: type: object properties: nom: type: string prenom: type: string genre: type: string enum: - FEMININ - MASCULIN - NEUTRE dateNaissance: type: string format: date nbEnfants: type: integer format: int32 adresse: type: string adresseId: type: integer format: int64 telephone: type: string mailPerso: type: string format: email mailApside: type: string format: email statut: type: string enum: - CADRE - NON-CADRE - ALTERNANT - STAGIAIRE fonctions: type: string businessUnit: type: integer format: int64 parrain: type: integer format: int64 technologiesPref: type: array items: type: string dateDebutPE: type: string format: date dateFinPE: type: string format: date NouvelleAgence: type: object properties: nom: type: string bus: type: array items: $ref: '#/components/schemas/BU' NouvelleAdresse: type: object properties: rue: type: string ville: type: string codePostal: type: string pays: type: string dateDebut: type: string format: date dateFin: type: string format: date NouvelleBU: type: object properties: nom: type: string agence: $ref: '#/components/schemas/Agence' NouveauProjet: type: object properties: nom: type: string client: type: string debut: type: string format: date fin: type: string format: date description: type: string NouvellePeriodeEssai: type: object properties: dateDebut: type: string format: date dateFinPrev: type: string format: date dateFinEffect: type: string format: date commentaire: type: string issuePE: $ref: '#/components/schemas/IssuePE' responses: '200': description: Opération terminée avec succès '400': description: Mauvais paramètre 404Id: description: il n'y a pas de d'objet recherché possédant cet id 404Mail: description: il n'y a pas de collaborateur associé à ce mail 404Collab: description: il n'y a pas de collaborateur 404Agence: description: il n'y a pas d'agence 404Adresse: description: il n'y a pas d'adresse 404BU: description: il n'y a pas de business-unit 404Projet: description: il n'y a pas de projet servers: - description: local server url: 'http://localhost:3000' - description: SwaggerHub API Auto Mocking url: 'https://virtserver.swaggerhub.com/LilianG/Service-Collaborateur/1.1.1'