openapi: 3.0.3 info: title: 'Programmes 31 Jours - API' description: "Documentation de l'API de l'application Programme 31 Jours" version: 1.0.0 servers: - url: 'https://api.programme-31.ppd.info-charisma.com' paths: /api/logout: post: summary: 'POST /api/logout' operationId: pOSTapilogout description: "Logout the user's session" parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '01 - User Authentication' /api/login: post: summary: 'POST /api/login' operationId: pOSTapilogin description: "Request a token for a user's session after providing credentials" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: accessToken: eyJhbGciOiJSUz...O3pGQ refreshToken: eyJhbGci...RT8 accessExpiresIn: 1800 refreshExpiresIn: 1800 tokenType: Bearer scope: 'openid profile email' properties: accessToken: type: string example: eyJhbGciOiJSUz...O3pGQ refreshToken: type: string example: eyJhbGci...RT8 accessExpiresIn: type: integer example: 1800 refreshExpiresIn: type: integer example: 1800 tokenType: type: string example: Bearer scope: type: string example: 'openid profile email' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Invalid user credentials' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Invalid user credentials' tags: - '01 - User Authentication' requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: "The user's email. value doit être une adresse e-mail valide." example: admin@admin.com nullable: false password: type: string description: "The user's password." example: admin nullable: false required: - email - password security: [] /api/forgot-password: post: summary: 'POST /api/forgot-password' operationId: pOSTapiforgotPassword description: 'Forgot password process' parameters: [] responses: { } tags: - '01 - User Authentication' security: [] /api/profile: get: summary: 'GET /api/userinfo' operationId: gETapiuserinfo description: "Get the user's information" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: Admin email: admin@admin.com firstname: Admin birthdate: null civilite: Mr civil_status: null mobile_phone: null secteur_gf: null reseau_md: null autre_departement: null genre: null created_at: null updated_at: '2022-01-11 13:15:54' is_active: 1 roles: - id: 1 title: 'Admin système' - { } properties: id: type: integer example: 1 name: type: string example: Admin email: type: string example: admin@admin.com firstname: type: string example: Admin birthdate: type: string example: null civilite: type: string example: Mr civil_status: type: string example: null mobile_phone: type: string example: null secteur_gf: type: string example: null reseau_md: type: string example: null autre_departement: type: string example: null genre: type: string example: null created_at: type: string example: null updated_at: type: string example: '2022-01-11 13:15:54' is_active: type: integer example: 1 roles: type: array example: - id: 1 title: 'Admin système' - [] items: type: object properties: id: type: integer example: 1 title: type: string example: 'Admin système' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '01 - User Authentication' /api/profiles: get: summary: 'GET /api/profils' operationId: gETapiprofils description: "Get the profile's list" parameters: [] responses: 200: description: '' content: application/json: schema: type: array items: type: object example: - id: 76c378c8-bf14-4460-b350-fd7a0fc6da3a name: 'Prog31 Administrateurs' path: '/Prog31 Administrateurs' profil_code: administrateur profil_name: Administrateur - ...: ... 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '01 - User Authentication' /api/refresh: post: summary: 'Get new token from refresh token' operationId: getNewTokenFromRefreshToken description: 'Get a new token from refresh token' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: accessToken: eyJhbGciOiJSUz...O3pGQ refreshToken: null accessExpiresIn: 1800 refreshExpiresIn: 1800 tokenType: Bearer scope: 'openid profile email' properties: accessToken: type: string example: eyJhbGciOiJSUz...O3pGQ refreshToken: type: string example: null accessExpiresIn: type: integer example: 1800 refreshExpiresIn: type: integer example: 1800 tokenType: type: string example: Bearer scope: type: string example: 'openid profile email' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Invalid user credentials' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Invalid user credentials' tags: - '01 - User Authentication' requestBody: required: true content: application/json: schema: type: object properties: refresh_token: type: string description: '' example: ut nullable: false required: - refresh_token security: [] /api/v1/users: get: summary: 'Lister les utilisateurs' operationId: listerLesUtilisateurs description: 'Permet de recuperer la liste des utilisateurs avec leurs roles et leur team' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '02 - Utilisateurs' post: summary: 'Créer un utilisateur' operationId: crerUnUtilisateur description: 'Permet de créer une nouvel utilisateur' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: Admin email: admin@admin.com firstname: Admin birthdate: null civilite: Mr civil_status: null mobile_phone: null secteur_gf: null reseau_md: null autre_departement: null genre: null created_at: null updated_at: '2022-01-11 13:15:54' is_active: 1 roles: - id: 1 title: 'Admin système' - { } properties: id: type: integer example: 1 name: type: string example: Admin email: type: string example: admin@admin.com firstname: type: string example: Admin birthdate: type: string example: null civilite: type: string example: Mr civil_status: type: string example: null mobile_phone: type: string example: null secteur_gf: type: string example: null reseau_md: type: string example: null autre_departement: type: string example: null genre: type: string example: null created_at: type: string example: null updated_at: type: string example: '2022-01-11 13:15:54' is_active: type: integer example: 1 roles: type: array example: - id: 1 title: 'Admin système' - [] items: type: object properties: id: type: integer example: 1 title: type: string example: 'Admin système' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '02 - Utilisateurs' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: "Nom de l'utilisateur." example: Doe nullable: false email: type: string description: "Email de de l'utilisateur." example: john.doe@localhost.com nullable: false firstname: type: string description: "Prénom de l'utilisateur." example: John nullable: false mobile_phone: type: string description: "Téléphone mobile de l'utilisateur." example: 01-23-45-67-89 nullable: true genre: type: string description: 'Homme ou Femme.' example: Homme nullable: true profils: type: object description: 'Liste des profils à affecter.' example: a: 'Profil a' b: 'profil b' c: 'profil c' nullable: true properties: { } required: - name - email - firstname '/api/v1/users/{id}': get: summary: 'Afficher un utilisateur' operationId: afficherUnUtilisateur description: "Permet de récupérer les détails d'un utilisateur" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: Admin email: admin@admin.com firstname: Admin birthdate: null civilite: Mr civil_status: null mobile_phone: null secteur_gf: null reseau_md: null autre_departement: null genre: null created_at: null updated_at: '2022-01-11 13:15:54' is_active: 1 roles: - id: 1 title: 'Admin système' - { } properties: id: type: integer example: 1 name: type: string example: Admin email: type: string example: admin@admin.com firstname: type: string example: Admin birthdate: type: string example: null civilite: type: string example: Mr civil_status: type: string example: null mobile_phone: type: string example: null secteur_gf: type: string example: null reseau_md: type: string example: null autre_departement: type: string example: null genre: type: string example: null created_at: type: string example: null updated_at: type: string example: '2022-01-11 13:15:54' is_active: type: integer example: 1 roles: type: array example: - id: 1 title: 'Admin système' - [] items: type: object properties: id: type: integer example: 1 title: type: string example: 'Admin système' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '02 - Utilisateurs' put: summary: 'Modifier un utilisateur' operationId: modifierUnUtilisateur description: 'Permet de modifier un utilisateur' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: Admin email: admin@admin.com firstname: Admin birthdate: null civilite: Mr civil_status: null mobile_phone: null secteur_gf: null reseau_md: null autre_departement: null genre: null created_at: null updated_at: '2022-01-11 13:15:54' is_active: 1 roles: - id: 1 title: 'Admin système' - { } properties: id: type: integer example: 1 name: type: string example: Admin email: type: string example: admin@admin.com firstname: type: string example: Admin birthdate: type: string example: null civilite: type: string example: Mr civil_status: type: string example: null mobile_phone: type: string example: null secteur_gf: type: string example: null reseau_md: type: string example: null autre_departement: type: string example: null genre: type: string example: null created_at: type: string example: null updated_at: type: string example: '2022-01-11 13:15:54' is_active: type: integer example: 1 roles: type: array example: - id: 1 title: 'Admin système' - [] items: type: object properties: id: type: integer example: 1 title: type: string example: 'Admin système' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '02 - Utilisateurs' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: "Nom de l'utilisateur." example: Doe nullable: false roles: type: array description: '' example: - 5 items: type: integer firstname: type: string description: "Prénom de l'utilisateur." example: John nullable: false birthdate: type: string description: "Date de naissance de l'utilisateur. Must be a valid date in the format Y-m-d." example: '2022-01-11' nullable: true mobile_phone: type: string description: "Téléphone mobile de l'utilisateur." example: 01-23-45-67-89 nullable: true reseau_md: type: string description: "Réseau de MD de l'utilisateur." example: 'MD A' nullable: true autre_departement: type: string description: '' example: iste nullable: true genre: type: string description: 'Homme ou Femme.' example: Homme nullable: true civilite: type: string description: 'Mr, Mme ou Mlle.' example: Mr nullable: true civil_status: type: string description: 'Marié(e), Célibataire, Veuf(ve), Divorc(é)....' example: Célibataire nullable: true is_active: type: boolean description: 'indique si le compte est actif ou non.' example: true nullable: false required: - is_active delete: summary: 'Supprimer un utilisateur' operationId: supprimerUnUtilisateur description: 'Permet de supprimer un utilisateur (soft delete)' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '02 - Utilisateurs' parameters: - in: path name: id description: 'The ID of the user.' example: 1 required: true schema: type: integer /api/v1/user-genres: get: summary: 'Listes des genres' operationId: listesDesGenres description: 'Permet de récupérer la liste des genres (Homme ou Femme)' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '02 - Utilisateurs' /api/v1/user-quota: get: summary: 'Quota par utilisateur' operationId: quotaParUtilisateur description: 'Permet de recuperer le qutota de suivi par utilisateur' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '02 - Utilisateurs' /api/v1/user-civilites: get: summary: 'Listes des civilités' operationId: listesDesCivilits description: 'Permet de récupérer les civilités (Mr Mme Mlle)' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '02 - Utilisateurs' /api/v1/user-etat-civils: get: summary: 'Listes des états civils' operationId: listesDestatsCivils description: 'Permet de récupérer les civilités (Mr Mme Mlle)' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '02 - Utilisateurs' /api/v1/user-find: post: summary: 'Trouver des utilisateurs' operationId: trouverDesUtilisateurs description: "Permet de récupérer les détails d'un utilisateur" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: Admin email: admin@admin.com firstname: Admin birthdate: null civilite: Mr civil_status: null mobile_phone: null secteur_gf: null reseau_md: null autre_departement: null genre: null created_at: null updated_at: '2022-01-11 13:15:54' is_active: 1 roles: - id: 1 title: 'Admin système' - { } properties: id: type: integer example: 1 name: type: string example: Admin email: type: string example: admin@admin.com firstname: type: string example: Admin birthdate: type: string example: null civilite: type: string example: Mr civil_status: type: string example: null mobile_phone: type: string example: null secteur_gf: type: string example: null reseau_md: type: string example: null autre_departement: type: string example: null genre: type: string example: null created_at: type: string example: null updated_at: type: string example: '2022-01-11 13:15:54' is_active: type: integer example: 1 roles: type: array example: - id: 1 title: 'Admin système' - [] items: type: object properties: id: type: integer example: 1 title: type: string example: 'Admin système' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '02 - Utilisateurs' requestBody: required: true content: application/json: schema: type: object properties: pattern: type: string description: 'motif de recherche.' example: corporis nullable: false required: - pattern /api/v1/contacts: get: summary: 'Lister les contacts' operationId: listerLesContacts description: 'Permet de recuperer la liste des utilisateurs avec leurs roles et leur team' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' post: summary: 'Créer un contact' operationId: crerUnContact description: 'Permet de créer une nouveau contact' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: lastname: Dupont firstname: Marie etat_civil: Marié(e) birthdate: '2022-01-11' metier: Institutrice telephone: 01-23-45-67-89 email: est genre: Femme civilite: Mme est_mineur: false liste_id: 2 source_id: 2 updated_at: '2022-01-12 14:07:21' created_at: '2022-01-12 14:07:21' id: 2 subscription_date: '2023-07-24 16:05:24' ville: null code_postal: null secteur_gf: null adresse_postale: null liste: id: 2 libelle: Persévérance code: PSV description: 'Liste des contacts dont le suivi est suspendu' source: id: 2 libelle: Evangélisation code: EVG description: "Contact provenant d'une campagne d'évangélisation" properties: data: type: object properties: lastname: type: string example: Dupont firstname: type: string example: Marie etat_civil: type: string example: Marié(e) birthdate: type: string example: '2022-01-11' metier: type: string example: Institutrice telephone: type: string example: 01-23-45-67-89 email: type: string example: est genre: type: string example: Femme civilite: type: string example: Mme est_mineur: type: boolean example: false liste_id: type: integer example: 2 source_id: type: integer example: 2 updated_at: type: string example: '2022-01-12 14:07:21' created_at: type: string example: '2022-01-12 14:07:21' id: type: integer example: 2 subscription_date: type: string example: '2023-07-24 16:05:24' ville: type: string example: null code_postal: type: string example: null secteur_gf: type: string example: null adresse_postale: type: string example: null liste: type: object properties: id: type: integer example: 2 libelle: type: string example: Persévérance code: type: string example: PSV description: type: string example: 'Liste des contacts dont le suivi est suspendu' source: type: object properties: id: type: integer example: 2 libelle: type: string example: Evangélisation code: type: string example: EVG description: type: string example: "Contact provenant d'une campagne d'évangélisation" 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '03 - Contacts' requestBody: required: true content: application/json: schema: type: object properties: lastname: type: string description: '' example: qui nullable: false firstname: type: string description: 'Prénom du contact.' example: Jean nullable: false etat_civil: type: string description: 'Etat civil du contact.' example: Marié(e) nullable: true birthdate: type: string description: 'Date de naissance du contact. Must be a valid date in the format Y-m-d.' example: '2022-01-11' nullable: true metier: type: string description: 'Métier du contact.' example: Agriculteur nullable: true telephone: type: string description: 'Téléphone mobile du contact.' example: 01-23-45-67-89 nullable: true email: type: string description: '' example: pink.predovic@example.net nullable: true genre: type: string description: 'Homme ou Femme.' example: Homme nullable: true civilite: type: string description: 'Mr, Mme ou Mlle.' example: Mr nullable: true est_mineur: type: boolean description: '' example: false nullable: true source_id: type: integer description: "Id d'origine d'inscription du contact." example: 1 nullable: false subscription_date: type: string description: "Date d'inscription ou de conversion. Must be a valid date in the format Y-m-d." example: '2022-01-11' nullable: false ville: type: string description: 'Ville de résidence du contact.' example: 'Le Blanc-Mesnil' nullable: true code_postal: type: string description: 'Code postal de résidence du contact.' example: '93150' nullable: true secteur_gf: type: string description: 'Secteur de GF de résidence.' example: 'Secteur 1' nullable: true adresse_postale: type: string description: 'Adresse postale du contact.' example: '7 rue Isaac Newton' nullable: true nationalite: type: string description: '' example: deleniti nullable: true langue_parlee: type: string description: '' example: esse nullable: true autre_telephone: type: string description: '' example: eligendi nullable: true num_personne_foyer: type: string description: '' example: nihil nullable: true invite_par: type: string description: '' example: ullam nullable: true date_conversion: type: string description: 'Must be a valid date in the format Y-m-d.' example: '2026-05-27' nullable: true conseiller_nc: type: string description: '' example: eveniet nullable: true est_candidat_prog31: type: boolean description: '' example: true nullable: true est_candidat_visite: type: boolean description: '' example: false nullable: true est_converti_cec: type: boolean description: '' example: false nullable: true is_livre: type: boolean description: 'Indique si le contact a reçu le livre "31 Jours".' example: false nullable: true observations: type: string description: '' example: et nullable: true required: - lastname - firstname - source_id - subscription_date '/api/v1/contacts/{id}': get: summary: 'Afficher un contact' operationId: afficherUnContact description: "Permet de récupérer les détails d'un contact" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: lastname: Dupont firstname: Marie etat_civil: Marié(e) birthdate: '2022-01-11' metier: Institutrice telephone: 01-23-45-67-89 email: est genre: Femme civilite: Mme est_mineur: false liste_id: 2 source_id: 2 updated_at: '2022-01-12 14:07:21' created_at: '2022-01-12 14:07:21' id: 2 subscription_date: '2023-07-24 16:05:24' ville: null code_postal: null secteur_gf: null adresse_postale: null liste: id: 2 libelle: Persévérance code: PSV description: 'Liste des contacts dont le suivi est suspendu' source: id: 2 libelle: Evangélisation code: EVG description: "Contact provenant d'une campagne d'évangélisation" properties: data: type: object properties: lastname: type: string example: Dupont firstname: type: string example: Marie etat_civil: type: string example: Marié(e) birthdate: type: string example: '2022-01-11' metier: type: string example: Institutrice telephone: type: string example: 01-23-45-67-89 email: type: string example: est genre: type: string example: Femme civilite: type: string example: Mme est_mineur: type: boolean example: false liste_id: type: integer example: 2 source_id: type: integer example: 2 updated_at: type: string example: '2022-01-12 14:07:21' created_at: type: string example: '2022-01-12 14:07:21' id: type: integer example: 2 subscription_date: type: string example: '2023-07-24 16:05:24' ville: type: string example: null code_postal: type: string example: null secteur_gf: type: string example: null adresse_postale: type: string example: null liste: type: object properties: id: type: integer example: 2 libelle: type: string example: Persévérance code: type: string example: PSV description: type: string example: 'Liste des contacts dont le suivi est suspendu' source: type: object properties: id: type: integer example: 2 libelle: type: string example: Evangélisation code: type: string example: EVG description: type: string example: "Contact provenant d'une campagne d'évangélisation" 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'Id inconnu' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'Id inconnu' tags: - '03 - Contacts' put: summary: 'Modifier un contact' operationId: modifierUnContact description: 'Permet de modifier un contact' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: lastname: Dupont firstname: Marie etat_civil: Marié(e) birthdate: '2022-01-11' metier: Institutrice telephone: 01-23-45-67-89 email: est genre: Femme civilite: Mme est_mineur: false liste_id: 2 source_id: 2 updated_at: '2022-01-12 14:07:21' created_at: '2022-01-12 14:07:21' id: 2 subscription_date: '2023-07-24 16:05:24' ville: null code_postal: null secteur_gf: null adresse_postale: null liste: id: 2 libelle: Persévérance code: PSV description: 'Liste des contacts dont le suivi est suspendu' source: id: 2 libelle: Evangélisation code: EVG description: "Contact provenant d'une campagne d'évangélisation" properties: data: type: object properties: lastname: type: string example: Dupont firstname: type: string example: Marie etat_civil: type: string example: Marié(e) birthdate: type: string example: '2022-01-11' metier: type: string example: Institutrice telephone: type: string example: 01-23-45-67-89 email: type: string example: est genre: type: string example: Femme civilite: type: string example: Mme est_mineur: type: boolean example: false liste_id: type: integer example: 2 source_id: type: integer example: 2 updated_at: type: string example: '2022-01-12 14:07:21' created_at: type: string example: '2022-01-12 14:07:21' id: type: integer example: 2 subscription_date: type: string example: '2023-07-24 16:05:24' ville: type: string example: null code_postal: type: string example: null secteur_gf: type: string example: null adresse_postale: type: string example: null liste: type: object properties: id: type: integer example: 2 libelle: type: string example: Persévérance code: type: string example: PSV description: type: string example: 'Liste des contacts dont le suivi est suspendu' source: type: object properties: id: type: integer example: 2 libelle: type: string example: Evangélisation code: type: string example: EVG description: type: string example: "Contact provenant d'une campagne d'évangélisation" 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'Id inconnu' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'Id inconnu' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '03 - Contacts' requestBody: required: true content: application/json: schema: type: object properties: lastname: type: string description: '' example: et nullable: false firstname: type: string description: 'Prénom du contact.' example: Jean nullable: false etat_civil: type: string description: 'Etat civil du contact.' example: Marié(e) nullable: true birthdate: type: string description: 'Date de naissance du contact. Must be a valid date in the format Y-m-d.' example: '2022-01-11' nullable: true metier: type: string description: 'Métier du contact.' example: Agriculteur nullable: true telephone: type: string description: 'Téléphone mobile du contact.' example: 01-23-45-67-89 nullable: true email: type: string description: '' example: fiona.prosacco@example.com nullable: true genre: type: string description: 'Homme ou Femme.' example: Homme nullable: true civilite: type: string description: 'Mr, Mme ou Mlle.' example: Mr nullable: true est_mineur: type: boolean description: '' example: true nullable: true liste_id: type: integer description: 'Id de liste de suivi du contact.' example: 1 nullable: true source_id: type: integer description: "Id d'origine d'inscription du contact." example: 1 nullable: false subscription_date: type: string description: "Date d'inscription ou de conversion. Must be a valid date in the format Y-m-d." example: '2022-01-11' nullable: false ville: type: string description: 'Ville de résidence du contact.' example: 'Le Blanc-Mesnil' nullable: true code_postal: type: string description: 'Code postal de résidence du contact.' example: '93150' nullable: true secteur_gf: type: string description: 'Secteur de GF de résidence.' example: 'Secteur 1' nullable: true adresse_postale: type: string description: 'Adresse postale du contact.' example: '7 rue Isaac Newton' nullable: true is_livre: type: boolean description: 'Indique si le contact a reçu le livre "31 Jours".' example: false nullable: true required: - lastname - firstname - source_id delete: summary: 'Supprimer un contact' operationId: supprimerUnContact description: 'Permet de supprimer un contact (soft delete)' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'Id inconnu' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'Id inconnu' tags: - '03 - Contacts' parameters: - in: path name: id description: 'The ID of the contact.' example: 291 required: true schema: type: integer /api/v1/contact-genres: get: summary: 'Listes des genres' operationId: listesDesGenres description: 'Permet de récupérer la liste des genres (Homme ou Femme)' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'Id inconnu' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'Id inconnu' tags: - '03 - Contacts' /api/v1/contact-principale: get: summary: 'Contacts - Liste principale' operationId: contactsListePrincipale description: 'Permet de recuperer la liste des contacts de la liste principale' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' /api/v1/contact-principale-adulte: get: summary: 'Contacts - Liste principale Adulte' operationId: contactsListePrincipaleAdulte description: 'Permet de recuperer la liste des contacts adultes de la liste principale' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' /api/v1/contact-principale-ado: get: summary: 'Contacts - Liste principale Adolescent' operationId: contactsListePrincipaleAdolescent description: 'Permet de recuperer la liste des contacts adolescents de la liste principale' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' /api/v1/contact-mes-saisies: get: summary: 'Contacts - Mes saisies' operationId: contactsMesSaisies description: "Permet de recuperer la liste des contacts en attente saisis par l'utilisateur authentifié" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' /api/v1/contact-perseverance: get: summary: 'Contacts - Liste perséverance' operationId: contactsListePersverance description: 'Permet de recuperer la liste des contacts de la liste perseverance' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' /api/v1/contact-perseverance-adulte: get: summary: 'Contacts - Liste perséverance Adulte' operationId: contactsListePersveranceAdulte description: 'Permet de recuperer la liste des contacts de la liste perseverance' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' /api/v1/contact-perseverance-ado: get: summary: 'Contacts - Liste perséverance Adolescent' operationId: contactsListePersveranceAdolescent description: 'Permet de recuperer la liste des contacts de la liste perseverance' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' /api/v1/contact-attente: get: summary: 'Contacts - Liste attente attribution' operationId: contactsListeAttenteAttribution description: "Permet de recuperer la liste des contacts en attente d'attribution pour un coach" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' /api/v1/contact-attente-adulte: get: summary: 'Contacts - Liste attente attribution adulte' operationId: contactsListeAttenteAttributionAdulte description: "Permet de recuperer la liste des contacts adultes en attente d'attribution pour un coach" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' /api/v1/contact-attente-ado: get: summary: 'Contacts - Liste attente attribution adolescents' operationId: contactsListeAttenteAttributionAdolescents description: "Permet de recuperer la liste des contacts adolescents en attente d'attribution pour un coach" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' /api/v1/contact-civilites: get: summary: 'Listes des civilités' operationId: listesDesCivilits description: 'Permet de récupérer les civilités (Mr Mme Mlle)' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'Id inconnu' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'Id inconnu' tags: - '03 - Contacts' /api/v1/contact-etat-civils: get: summary: 'Listes des états civils' operationId: listesDestatsCivils description: 'Permet de récupérer les civilités (Mr Mme Mlle)' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'Id inconnu' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'Id inconnu' tags: - '03 - Contacts' /api/v1/contact-secteurs-gf: get: summary: 'Listes des secteurs de GF' operationId: listesDesSecteursDeGF description: 'Permet de récupérer les secteurs de GF' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'Id inconnu' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'Id inconnu' tags: - '03 - Contacts' /api/v1/contact-villes: get: summary: 'Lister les Villes' operationId: listerLesVilles description: 'Permet de récupérer les villes avec code postal et secteur associés' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'Id inconnu' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'Id inconnu' tags: - '03 - Contacts' /api/v1/contact-find: post: summary: 'Trouver des contacts' operationId: trouverDesContacts description: 'Permet de retrouver des contacts par nom, prénom, email, ou numéro de téléphone' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: lastname: Dupont firstname: Marie etat_civil: Marié(e) birthdate: '2022-01-11' metier: Institutrice telephone: 01-23-45-67-89 email: est genre: Femme civilite: Mme est_mineur: false liste_id: 2 source_id: 2 updated_at: '2022-01-12 14:07:21' created_at: '2022-01-12 14:07:21' id: 2 subscription_date: '2023-07-24 16:05:24' ville: null code_postal: null secteur_gf: null adresse_postale: null liste: id: 2 libelle: Persévérance code: PSV description: 'Liste des contacts dont le suivi est suspendu' source: id: 2 libelle: Evangélisation code: EVG description: "Contact provenant d'une campagne d'évangélisation" properties: data: type: object properties: lastname: type: string example: Dupont firstname: type: string example: Marie etat_civil: type: string example: Marié(e) birthdate: type: string example: '2022-01-11' metier: type: string example: Institutrice telephone: type: string example: 01-23-45-67-89 email: type: string example: est genre: type: string example: Femme civilite: type: string example: Mme est_mineur: type: boolean example: false liste_id: type: integer example: 2 source_id: type: integer example: 2 updated_at: type: string example: '2022-01-12 14:07:21' created_at: type: string example: '2022-01-12 14:07:21' id: type: integer example: 2 subscription_date: type: string example: '2023-07-24 16:05:24' ville: type: string example: null code_postal: type: string example: null secteur_gf: type: string example: null adresse_postale: type: string example: null liste: type: object properties: id: type: integer example: 2 libelle: type: string example: Persévérance code: type: string example: PSV description: type: string example: 'Liste des contacts dont le suivi est suspendu' source: type: object properties: id: type: integer example: 2 libelle: type: string example: Evangélisation code: type: string example: EVG description: type: string example: "Contact provenant d'une campagne d'évangélisation" 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' requestBody: required: true content: application/json: schema: type: object properties: pattern: type: string description: 'motif de recherche.' example: eveniet nullable: false required: - pattern '/api/v1/contact-find-secteur/{code}': post: summary: "Trouver le secteur GF d'une ville" operationId: trouverLeSecteurGFDuneVille description: "Permet de retrouver le secteur GF d'une ville à partir de son code postal" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '03 - Contacts' parameters: - in: path name: code description: '' example: eos required: true schema: type: string '/api/v1/contact-archive/{contact_id}': post: summary: 'Archiver un contact' operationId: archiverUnContact description: 'Permet de placer un contact dans la liste archive' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: message: 'Contact archivé avec succès' data: contact_id: 123 contact_name: 'Jean Dupont' liste_archive_id: 5 liste_archive_name: Archive archived_at: '2024-01-15 14:30:00' suivis_fermes: 2 properties: message: type: string example: 'Contact archivé avec succès' data: type: object properties: contact_id: type: integer example: 123 contact_name: type: string example: 'Jean Dupont' liste_archive_id: type: integer example: 5 liste_archive_name: type: string example: Archive archived_at: type: string example: '2024-01-15 14:30:00' suivis_fermes: type: integer example: 2 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Contact introuvable' path: null description: "Le contact spécifié n'existe pas" properties: code: type: integer example: 404 message: type: string example: 'Contact introuvable' path: type: string example: null description: type: string example: "Le contact spécifié n'existe pas" 422: description: '' content: application/json: schema: type: object example: code: 422 message: 'Contact déjà archivé' path: null description: 'Le contact est déjà dans la liste archive' properties: code: type: integer example: 422 message: type: string example: 'Contact déjà archivé' path: type: string example: null description: type: string example: 'Le contact est déjà dans la liste archive' tags: - '03 - Contacts' parameters: - in: path name: contact_id description: 'The ID of the contact.' example: 291 required: true schema: type: integer /api/v1/suivi-contacts: get: summary: 'Lister les affectations de suivi' operationId: listerLesAffectationsDeSuivi description: 'Permet de recuperer la liste des affectations de suivi (coach / contact)' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '04 - Affectations de suivi' post: summary: 'Créer une affectation de suivi' operationId: crerUneAffectationDeSuivi description: 'Permet de créer une affectation de suivi' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: contact_id: 2 coach_id: 2 date_debut: '2022-01-18 16:30:11' updated_at: '2022-01-18 16:30:11' created_at: '2022-01-18 16:30:11' id: 3 contact: id: 2 civilite: Mme lastname: Dupont firstname: Marie etat_civil: Marié(e) genre: Femme birthdate: '2022-01-11' est_mineur: 0 metier: Agriculteur telephone: 01-23-45-67-89 email: est created_at: '2022-01-12 14:07:21' updated_at: '2022-01-12 14:07:21' deleted_at: null liste_id: 2 source_id: 2 coach: id: 2 name: "D'ALMEIDA" email: laurenda1fr@yahoo.fr firstname: Laurenda birthdate: null civilite: Mme civil_status: Marié(e) mobile_phone: null secteur_gf: null reseau_md: null autre_departement: null genre: null created_at: '2021-10-06 20:15:38' updated_at: '2021-10-06 20:15:38' is_active: 1 properties: data: type: object properties: contact_id: type: integer example: 2 coach_id: type: integer example: 2 date_debut: type: string example: '2022-01-18 16:30:11' updated_at: type: string example: '2022-01-18 16:30:11' created_at: type: string example: '2022-01-18 16:30:11' id: type: integer example: 3 contact: type: object properties: id: type: integer example: 2 civilite: type: string example: Mme lastname: type: string example: Dupont firstname: type: string example: Marie etat_civil: type: string example: Marié(e) genre: type: string example: Femme birthdate: type: string example: '2022-01-11' est_mineur: type: integer example: 0 metier: type: string example: Agriculteur telephone: type: string example: 01-23-45-67-89 email: type: string example: est created_at: type: string example: '2022-01-12 14:07:21' updated_at: type: string example: '2022-01-12 14:07:21' deleted_at: type: string example: null liste_id: type: integer example: 2 source_id: type: integer example: 2 coach: type: object properties: id: type: integer example: 2 name: type: string example: "D'ALMEIDA" email: type: string example: laurenda1fr@yahoo.fr firstname: type: string example: Laurenda birthdate: type: string example: null civilite: type: string example: Mme civil_status: type: string example: Marié(e) mobile_phone: type: string example: null secteur_gf: type: string example: null reseau_md: type: string example: null autre_departement: type: string example: null genre: type: string example: null created_at: type: string example: '2021-10-06 20:15:38' updated_at: type: string example: '2021-10-06 20:15:38' is_active: type: integer example: 1 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '04 - Affectations de suivi' requestBody: required: true content: application/json: schema: type: object properties: contact_id: type: integer description: 'Id du contact à suivre. The id of an existing record in the contacts table.' example: 1 nullable: false coach_id: type: integer description: 'Id du coach. The id of an existing record in the users table.' example: 1 nullable: false date_debut: type: string description: 'Date de début du suivi. Must be a valid date in the format Y-m-d.' example: '2022-01-15 00:00:00' nullable: true date_fin: type: string description: 'Date de fin du suivi. Must be a valid date in the format Y-m-d.' example: '2022-01-19 00:00:00' nullable: true commentaires: type: string description: Commentaires. example: RAS nullable: true required: - contact_id - coach_id '/api/v1/suivi-contacts/{id}': get: summary: 'Afficher une affection de suivi' operationId: afficherUneAffectionDeSuivi description: "Permet de récupérer les détails d'une affectation de suivi d'un contact" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: contact_id: 2 coach_id: 2 date_debut: '2022-01-18 16:30:11' updated_at: '2022-01-18 16:30:11' created_at: '2022-01-18 16:30:11' id: 3 contact: id: 2 civilite: Mme lastname: Dupont firstname: Marie etat_civil: Marié(e) genre: Femme birthdate: '2022-01-11' est_mineur: 0 metier: Agriculteur telephone: 01-23-45-67-89 email: est created_at: '2022-01-12 14:07:21' updated_at: '2022-01-12 14:07:21' deleted_at: null liste_id: 2 source_id: 2 coach: id: 2 name: "D'ALMEIDA" email: laurenda1fr@yahoo.fr firstname: Laurenda birthdate: null civilite: Mme civil_status: Marié(e) mobile_phone: null secteur_gf: null reseau_md: null autre_departement: null genre: null created_at: '2021-10-06 20:15:38' updated_at: '2021-10-06 20:15:38' is_active: 1 properties: data: type: object properties: contact_id: type: integer example: 2 coach_id: type: integer example: 2 date_debut: type: string example: '2022-01-18 16:30:11' updated_at: type: string example: '2022-01-18 16:30:11' created_at: type: string example: '2022-01-18 16:30:11' id: type: integer example: 3 contact: type: object properties: id: type: integer example: 2 civilite: type: string example: Mme lastname: type: string example: Dupont firstname: type: string example: Marie etat_civil: type: string example: Marié(e) genre: type: string example: Femme birthdate: type: string example: '2022-01-11' est_mineur: type: integer example: 0 metier: type: string example: Agriculteur telephone: type: string example: 01-23-45-67-89 email: type: string example: est created_at: type: string example: '2022-01-12 14:07:21' updated_at: type: string example: '2022-01-12 14:07:21' deleted_at: type: string example: null liste_id: type: integer example: 2 source_id: type: integer example: 2 coach: type: object properties: id: type: integer example: 2 name: type: string example: "D'ALMEIDA" email: type: string example: laurenda1fr@yahoo.fr firstname: type: string example: Laurenda birthdate: type: string example: null civilite: type: string example: Mme civil_status: type: string example: Marié(e) mobile_phone: type: string example: null secteur_gf: type: string example: null reseau_md: type: string example: null autre_departement: type: string example: null genre: type: string example: null created_at: type: string example: '2021-10-06 20:15:38' updated_at: type: string example: '2021-10-06 20:15:38' is_active: type: integer example: 1 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '04 - Affectations de suivi' put: summary: 'Modifier une affectation de suivi' operationId: modifierUneAffectationDeSuivi description: 'Permet de modifier une affectation de suivi' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: contact_id: 2 coach_id: 2 date_debut: '2022-01-18 16:30:11' updated_at: '2022-01-18 16:30:11' created_at: '2022-01-18 16:30:11' id: 3 contact: id: 2 civilite: Mme lastname: Dupont firstname: Marie etat_civil: Marié(e) genre: Femme birthdate: '2022-01-11' est_mineur: 0 metier: Agriculteur telephone: 01-23-45-67-89 email: est created_at: '2022-01-12 14:07:21' updated_at: '2022-01-12 14:07:21' deleted_at: null liste_id: 2 source_id: 2 coach: id: 2 name: "D'ALMEIDA" email: laurenda1fr@yahoo.fr firstname: Laurenda birthdate: null civilite: Mme civil_status: Marié(e) mobile_phone: null secteur_gf: null reseau_md: null autre_departement: null genre: null created_at: '2021-10-06 20:15:38' updated_at: '2021-10-06 20:15:38' is_active: 1 properties: data: type: object properties: contact_id: type: integer example: 2 coach_id: type: integer example: 2 date_debut: type: string example: '2022-01-18 16:30:11' updated_at: type: string example: '2022-01-18 16:30:11' created_at: type: string example: '2022-01-18 16:30:11' id: type: integer example: 3 contact: type: object properties: id: type: integer example: 2 civilite: type: string example: Mme lastname: type: string example: Dupont firstname: type: string example: Marie etat_civil: type: string example: Marié(e) genre: type: string example: Femme birthdate: type: string example: '2022-01-11' est_mineur: type: integer example: 0 metier: type: string example: Agriculteur telephone: type: string example: 01-23-45-67-89 email: type: string example: est created_at: type: string example: '2022-01-12 14:07:21' updated_at: type: string example: '2022-01-12 14:07:21' deleted_at: type: string example: null liste_id: type: integer example: 2 source_id: type: integer example: 2 coach: type: object properties: id: type: integer example: 2 name: type: string example: "D'ALMEIDA" email: type: string example: laurenda1fr@yahoo.fr firstname: type: string example: Laurenda birthdate: type: string example: null civilite: type: string example: Mme civil_status: type: string example: Marié(e) mobile_phone: type: string example: null secteur_gf: type: string example: null reseau_md: type: string example: null autre_departement: type: string example: null genre: type: string example: null created_at: type: string example: '2021-10-06 20:15:38' updated_at: type: string example: '2021-10-06 20:15:38' is_active: type: integer example: 1 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '04 - Affectations de suivi' requestBody: required: false content: application/json: schema: type: object properties: date_debut: type: string description: 'Date de début du suivi. Must be a valid date in the format Y-m-d.' example: '2022-01-15' nullable: true date_fin: type: string description: 'Date de fin du suivi. Must be a valid date in the format Y-m-d.' example: '2022-01-19' nullable: true commentaires: type: string description: Commentaires. example: RAS nullable: true delete: summary: 'Supprimer une affectation de suivi' operationId: supprimerUneAffectationDeSuivi description: 'Permet de supprimer une affectation de suivi (soft delete)' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '04 - Affectations de suivi' parameters: - in: path name: id description: 'The ID of the suivi contact.' example: 1 required: true schema: type: integer - in: path name: suivi_contact description: "ID de l'objet suivi_contact. Exemple : 1" example: 1 required: true schema: type: integer /api/v1/mes-affectations: get: summary: 'Mes affectations de suivi' operationId: mesAffectationsDeSuivi description: "Permet de récupérer les contacts suivis par l'utilisateur connecté" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: contact_id: 2 coach_id: 2 date_debut: '2022-01-18 16:30:11' updated_at: '2022-01-18 16:30:11' created_at: '2022-01-18 16:30:11' id: 3 contact: id: 2 civilite: Mme lastname: Dupont firstname: Marie etat_civil: Marié(e) genre: Femme birthdate: '2022-01-11' est_mineur: 0 metier: Agriculteur telephone: 01-23-45-67-89 email: est created_at: '2022-01-12 14:07:21' updated_at: '2022-01-12 14:07:21' deleted_at: null liste_id: 2 source_id: 2 coach: id: 2 name: "D'ALMEIDA" email: laurenda1fr@yahoo.fr firstname: Laurenda birthdate: null civilite: Mme civil_status: Marié(e) mobile_phone: null secteur_gf: null reseau_md: null autre_departement: null genre: null created_at: '2021-10-06 20:15:38' updated_at: '2021-10-06 20:15:38' is_active: 1 properties: data: type: object properties: contact_id: type: integer example: 2 coach_id: type: integer example: 2 date_debut: type: string example: '2022-01-18 16:30:11' updated_at: type: string example: '2022-01-18 16:30:11' created_at: type: string example: '2022-01-18 16:30:11' id: type: integer example: 3 contact: type: object properties: id: type: integer example: 2 civilite: type: string example: Mme lastname: type: string example: Dupont firstname: type: string example: Marie etat_civil: type: string example: Marié(e) genre: type: string example: Femme birthdate: type: string example: '2022-01-11' est_mineur: type: integer example: 0 metier: type: string example: Agriculteur telephone: type: string example: 01-23-45-67-89 email: type: string example: est created_at: type: string example: '2022-01-12 14:07:21' updated_at: type: string example: '2022-01-12 14:07:21' deleted_at: type: string example: null liste_id: type: integer example: 2 source_id: type: integer example: 2 coach: type: object properties: id: type: integer example: 2 name: type: string example: "D'ALMEIDA" email: type: string example: laurenda1fr@yahoo.fr firstname: type: string example: Laurenda birthdate: type: string example: null civilite: type: string example: Mme civil_status: type: string example: Marié(e) mobile_phone: type: string example: null secteur_gf: type: string example: null reseau_md: type: string example: null autre_departement: type: string example: null genre: type: string example: null created_at: type: string example: '2021-10-06 20:15:38' updated_at: type: string example: '2021-10-06 20:15:38' is_active: type: integer example: 1 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '04 - Affectations de suivi' /api/v1/session-bilans: get: summary: 'Liste des particiapations aux sessions de bilans' operationId: listeDesParticiapationsAuxSessionsDeBilans description: 'Permet de recuperer la liste des participations aux sessions de bilans' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '05 - Sessions de bilans' post: summary: 'Enregistrer une participation à un bilan' operationId: enregistrerUneParticipationUnBilan description: "Permet d'enregistrer la participation d'un contact à une session de bilan pour un contact" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: name: Toto email: toto@localhost.com firstname: John mobile_phone: 01-23-45-67-89 genre: Mademoiselle civilite: Mr civil_status: Célibataire updated_at: '2022-02-15 11:20:54' created_at: '2022-02-15 11:20:54' id: 11 roles: - id: 1 title: 'Admin système' team: null properties: data: type: object properties: name: type: string example: Toto email: type: string example: toto@localhost.com firstname: type: string example: John mobile_phone: type: string example: 01-23-45-67-89 genre: type: string example: Mademoiselle civilite: type: string example: Mr civil_status: type: string example: Célibataire updated_at: type: string example: '2022-02-15 11:20:54' created_at: type: string example: '2022-02-15 11:20:54' id: type: integer example: 11 roles: type: array example: - id: 1 title: 'Admin système' items: type: object properties: id: type: integer example: 1 title: type: string example: 'Admin système' team: type: string example: null 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '05 - Sessions de bilans' requestBody: required: true content: application/json: schema: type: object properties: contact_id: type: integer description: 'Id du contact à suivre. The id of an existing record in the contacts table.' example: 1 nullable: false bilan_id: type: integer description: 'Id du bilan. The id of an existing record in the bilans table.' example: 1 nullable: false date: type: string description: 'Date de la session. Must be a valid date in the format Y-m-d.' example: '2022-01-15 00:00:00' nullable: false required: - contact_id - bilan_id - date '/api/v1/session-bilans/{id}': get: summary: 'Afficher une participation pour un contact' operationId: afficherUneParticipationPourUnContact description: "Permet de récupérer les détails d'une participation d'un contact à un session de bilan" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 1 date: '2022-01-17' bilan_id: 2 contact_id: 1 bilan: id: 2 nom: 'Bilan Semaine 2' code: BS2 description: 'Bilan Semaine 2' programme_id: 1 contact: id: 1 civilite: Mr lastname: Dupont firstname: Jean etat_civil: Marié(e) genre: Homme birthdate: '2022-01-11' est_mineur: 0 metier: Agriculteur telephone: 01-23-45-67-89 email: ipsum liste_id: 1 source_id: 1 properties: data: type: object properties: id: type: integer example: 1 date: type: string example: '2022-01-17' bilan_id: type: integer example: 2 contact_id: type: integer example: 1 bilan: type: object properties: id: type: integer example: 2 nom: type: string example: 'Bilan Semaine 2' code: type: string example: BS2 description: type: string example: 'Bilan Semaine 2' programme_id: type: integer example: 1 contact: type: object properties: id: type: integer example: 1 civilite: type: string example: Mr lastname: type: string example: Dupont firstname: type: string example: Jean etat_civil: type: string example: Marié(e) genre: type: string example: Homme birthdate: type: string example: '2022-01-11' est_mineur: type: integer example: 0 metier: type: string example: Agriculteur telephone: type: string example: 01-23-45-67-89 email: type: string example: ipsum liste_id: type: integer example: 1 source_id: type: integer example: 1 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '05 - Sessions de bilans' put: summary: 'Modifier une participation pour un contact' operationId: modifierUneParticipationPourUnContact description: "Permet de modifier les détails d'une participation d'un contact à un session de bilan" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: date: '2022-01-10' id: 1 properties: data: type: object properties: date: type: string example: '2022-01-10' id: type: integer example: 1 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '05 - Sessions de bilans' requestBody: required: true content: application/json: schema: type: object properties: date: type: string description: 'Date de la session. Must be a valid date in the format Y-m-d.' example: '2022-01-15 00:00:00' nullable: false required: - date delete: summary: 'Supprimer une participation pour un contact' operationId: supprimerUneParticipationPourUnContact description: "Permet de supprimer la participation d'un contact à une session de bilan (soft delete)" parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '05 - Sessions de bilans' parameters: - in: path name: id description: 'The ID of the session bilan.' example: 1 required: true schema: type: integer - in: path name: session_bilan description: "ID de l'objet session_bilan. Exemple : 1" example: 20 required: true schema: type: integer /api/v1/suivi-telephoniques: get: summary: 'Liste des suivis téléphoniques' operationId: listeDesSuivisTlphoniques description: "Permet d'afficher la liste des suivis téléphoniques" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '06 - Suivi téléphonique' post: summary: 'Enregistrer suivi téléphonique' operationId: enregistrerSuiviTlphonique description: "Permet d'enregistrer le rapport d'un suivi téléphonique" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: contact_id: 2 coach_id: 5 date_appel: '2022-01-24 15:40:00' commentaires: 'test de création de suivi téléphonique' statut_id: 4 updated_at: '2022-02-16 14:41:05' created_at: '2022-02-16 14:41:05' id: 1 properties: data: type: object properties: contact_id: type: integer example: 2 coach_id: type: integer example: 5 date_appel: type: string example: '2022-01-24 15:40:00' commentaires: type: string example: 'test de création de suivi téléphonique' statut_id: type: integer example: 4 updated_at: type: string example: '2022-02-16 14:41:05' created_at: type: string example: '2022-02-16 14:41:05' id: type: integer example: 1 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '06 - Suivi téléphonique' requestBody: required: true content: application/json: schema: type: object properties: date_appel: type: string description: "Date et heure d'appel du suivi. Must be a valid date in the format Y-m-d." example: '2022-01-15 15:30:00' nullable: false commentaires: type: string description: 'Commentaires éventuels saisis par le coach.' example: N.A nullable: true contact_id: type: integer description: 'Id du contact à suivre. The id of an existing record in the contacts table.' example: 1 nullable: false coach_id: type: integer description: 'Id du coach qui effectue le bilan. The id of an existing record in the users table.' example: 1 nullable: false statut_id: type: integer description: 'Id du statut du suivi. The id of an existing record in the statut_appels table.' example: 1 nullable: false required: - date_appel - contact_id - coach_id - statut_id '/api/v1/suivi-telephoniques/{id}': get: summary: 'Afficher un suivi téléphonique' operationId: afficherUnSuiviTlphonique description: "Permet de récupérer les détails d'un rapport de suivi téléphonique" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 1 date_appel: '2022-01-24 15:40:00' commentaires: 'test de création de suivi téléphonique' contact_id: 2 coach_id: 5 statut_id: 4 contact: id: 2 civilite: Mme lastname: Dupont firstname: Marie-Claire etat_civil: Marié(e) genre: Femme birthdate: '2022-01-11' est_mineur: 1 metier: Agriculteur telephone: 01-23-45-67-89 email: est liste_id: 1 source_id: 1 coach: id: 5 name: Ngoileye email: emailtestlaurence@yahoo.fr firstname: Laurence birthdate: '1985-06-12' civilite: Mme civil_status: Marié(e) mobile_phone: '0612121212' secteur_gf: 'Secteur 7' reseau_md: 'MD Intensité' autre_departement: Libéralité genre: Femme created_at: '2021-11-13 23:11:06' updated_at: '2021-11-13 23:15:21' keycloak_user_id: null is_active: 1 statut: id: 4 libelle: 'Changement de coach' code: CCH description: 'Changement de coach' type: PCP team: null properties: data: type: object properties: id: type: integer example: 1 date_appel: type: string example: '2022-01-24 15:40:00' commentaires: type: string example: 'test de création de suivi téléphonique' contact_id: type: integer example: 2 coach_id: type: integer example: 5 statut_id: type: integer example: 4 contact: type: object properties: id: type: integer example: 2 civilite: type: string example: Mme lastname: type: string example: Dupont firstname: type: string example: Marie-Claire etat_civil: type: string example: Marié(e) genre: type: string example: Femme birthdate: type: string example: '2022-01-11' est_mineur: type: integer example: 1 metier: type: string example: Agriculteur telephone: type: string example: 01-23-45-67-89 email: type: string example: est liste_id: type: integer example: 1 source_id: type: integer example: 1 coach: type: object properties: id: type: integer example: 5 name: type: string example: Ngoileye email: type: string example: emailtestlaurence@yahoo.fr firstname: type: string example: Laurence birthdate: type: string example: '1985-06-12' civilite: type: string example: Mme civil_status: type: string example: Marié(e) mobile_phone: type: string example: '0612121212' secteur_gf: type: string example: 'Secteur 7' reseau_md: type: string example: 'MD Intensité' autre_departement: type: string example: Libéralité genre: type: string example: Femme created_at: type: string example: '2021-11-13 23:11:06' updated_at: type: string example: '2021-11-13 23:15:21' keycloak_user_id: type: string example: null is_active: type: integer example: 1 statut: type: object properties: id: type: integer example: 4 libelle: type: string example: 'Changement de coach' code: type: string example: CCH description: type: string example: 'Changement de coach' type: type: string example: PCP team: type: string example: null 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '06 - Suivi téléphonique' put: summary: 'Modifier un suivi téléphonique' operationId: modifierUnSuiviTlphonique description: "Permet de modifier les détails d'une participation d'un contact à un session de bilan" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: date_appel: '2022-01-23 16:35:00' commentaires: 'test de modification de suivi téléphonique' statut_id: 3 id: 1 properties: data: type: object properties: date_appel: type: string example: '2022-01-23 16:35:00' commentaires: type: string example: 'test de modification de suivi téléphonique' statut_id: type: integer example: 3 id: type: integer example: 1 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '06 - Suivi téléphonique' requestBody: required: true content: application/json: schema: type: object properties: date_appel: type: string description: "Date et heure d'appel du suivi. Must be a valid date in the format Y-m-d." example: '2022-01-15 15:30:00' nullable: true commentaires: type: string description: 'Commentaires éventuels saisis par le coach.' example: N.A nullable: true statut_id: type: integer description: 'Id du statut du suivi. The id of an existing record in the statut_appels table.' example: 1 nullable: false required: - statut_id delete: summary: 'Supprimer un suivi téléphonique' operationId: supprimerUnSuiviTlphonique description: 'Permet de supprimer le rapport de suivi téléphonique' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '06 - Suivi téléphonique' parameters: - in: path name: id description: 'The ID of the suivi telephonique.' example: 12 required: true schema: type: integer - in: path name: suivi_telephonique description: "ID de l'objet suivi_telephonique. Exemple : 1" example: 18 required: true schema: type: integer /api/v1/mon-suivi-telephonique: get: summary: 'Mon suivi téléphonique' operationId: monSuiviTlphonique description: "Permet d'afficher la liste des suivis téléphoniques de l'utilisateur connecté" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '06 - Suivi téléphonique' /api/v1/suivi-telephonique-perseverance: get: summary: 'Suivi téléphonique persévérance' operationId: suiviTlphoniquePersvrance description: "Permet d'afficher la liste des suivis téléphoniques de la liste de persévérance" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '06 - Suivi téléphonique' /api/v1/suivi-telephonique-perseverance-adulte: get: summary: 'Suivi téléphonique persévérance adulte' operationId: suiviTlphoniquePersvranceAdulte description: "Permet d'afficher la liste des suivis téléphoniques de la liste de persévérance" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '06 - Suivi téléphonique' /api/v1/suivi-telephonique-perseverance-ado: get: summary: 'Suivi téléphonique persévérance adolescent' operationId: suiviTlphoniquePersvranceAdolescent description: "Permet d'afficher la liste des suivis téléphoniques de la liste de persévérance" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '06 - Suivi téléphonique' /api/v1/suivi-telephonique-principale: get: summary: 'Suivi téléphonique principale' operationId: suiviTlphoniquePrincipale description: "Permet d'afficher la liste des suivis téléphoniques de la liste principale" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '06 - Suivi téléphonique' /api/v1/suivi-telephonique-liste-actions: get: summary: "Listes des statuts d'action" operationId: listesDesStatutsDaction description: "Permet de récupérer la liste des statuts d'action" parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'Id inconnu' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'Id inconnu' tags: - '06 - Suivi téléphonique' /api/v1/suivi-telephonique-action: get: summary: 'Suivi pour action' operationId: suiviPourAction description: "Permet d'afficher la liste des suivis téléphoniques necéssitant une action" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '06 - Suivi téléphonique' /api/v1/suivi-telephonique-action-adulte: get: summary: 'Suivi pour action adulte' operationId: suiviPourActionAdulte description: "Permet d'afficher la liste des suivis téléphoniques necéssitant une action (adulte)" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '06 - Suivi téléphonique' /api/v1/suivi-telephonique-action-ado: get: summary: 'Suivi pour action ado' operationId: suiviPourActionAdo description: "Permet d'afficher la liste des suivis téléphoniques necéssitant une action (ado)" parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '06 - Suivi téléphonique' /api/v1/configs: get: summary: 'Lister les paramètes' operationId: listerLesParamtes description: 'Permet de recuperer la liste des paramètres' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '07 - Paramètres' post: summary: 'Créer un paramètre' operationId: crerUnParamtre description: 'Permet de créer un nouveau paramètre' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: lastname: quota_suivi_contact value: '10' properties: data: type: object properties: lastname: type: string example: quota_suivi_contact value: type: string example: '10' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '07 - Paramètres' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Nom du paramètre.' example: quota_suivi_contact nullable: false value: type: string description: 'Valeur du paramètre.' example: '10' nullable: false required: - name - value '/api/v1/configs/{id}': get: summary: 'Afficher un paramètre par son Id' operationId: afficherUnParamtreParSonId description: "Permet de récupérer les détails d'un paramètre par son id" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: lastname: quota_suivi_contact value: '10' properties: data: type: object properties: lastname: type: string example: quota_suivi_contact value: type: string example: '10' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '07 - Paramètres' put: summary: 'Modifier un paramètre' operationId: modifierUnParamtre description: 'Permet de modifier un paramètre' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: lastname: quota_suivi_contact value: '10' properties: data: type: object properties: lastname: type: string example: quota_suivi_contact value: type: string example: '10' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '07 - Paramètres' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Nom du paramètre.' example: quota_suivi_contact nullable: false value: type: string description: 'Valeur du paramètre.' example: '10' nullable: false required: - name - value delete: summary: 'Supprimer un paramètre' operationId: supprimerUnParamtre description: 'Permet de supprimer un paramètre' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '07 - Paramètres' parameters: - in: path name: id description: 'The ID of the config.' example: 1 required: true schema: type: integer '/api/v1/config-by-name/{name}': get: summary: 'Afficher un paramètre' operationId: afficherUnParamtre description: "Permet de récupérer les détails d'un paramètre par som nom" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: lastname: quota_suivi_contact value: '10' properties: data: type: object properties: lastname: type: string example: quota_suivi_contact value: type: string example: '10' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '07 - Paramètres' parameters: - in: path name: name description: '' example: nemo required: true schema: type: string /api/v1/diplomes/print: post: summary: 'POST /api/v1/diplomes/print' operationId: pOSTapiv1diplomesprint description: 'Print and dowload diplomes' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{"document file"}' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Invalid parameters' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Invalid parameters' tags: - '08 - Certificats' requestBody: required: false content: application/json: schema: type: object properties: users: type: array description: '' example: - 16 items: type: integer /api/v1/diplomes/update-date: post: summary: 'POST /api/v1/diplomes/update-date' operationId: pOSTapiv1diplomesupdateDate description: 'Update date of certification' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{"results : ok"}' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Invalid parameters' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Invalid parameters' tags: - '08 - Certificats' requestBody: required: false content: application/json: schema: type: object properties: users: type: array description: '' example: - 10 items: type: integer /api/v1/diplomes/latests: get: summary: 'POST /api/v1/diplomes/latests' operationId: pOSTapiv1diplomeslatests description: 'Print and dowload latest diplomes' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{"document file"}' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Invalid parameters' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Invalid parameters' tags: - '08 - Certificats' /api/v1/contact-list-types: get: summary: 'Lister les types de contacts' operationId: listerLesTypesDeContacts description: 'Permet de recuperer la liste des types de contacts' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '09 - Types de Contact' post: summary: 'Créer un type de contact' operationId: crerUnTypeDeContact description: 'Permet de créer une nouveau type contact' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 1 libelle: Principale code: PCP description: 'Liste principale des contacts' properties: data: type: object properties: id: type: integer example: 1 libelle: type: string example: Principale code: type: string example: PCP description: type: string example: 'Liste principale des contacts' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '09 - Types de Contact' requestBody: required: true content: application/json: schema: type: object properties: libelle: type: string description: '' example: consectetur nullable: false code: type: string description: '' example: similique nullable: false description: type: string description: '' example: 'Omnis maxime eos voluptas ea accusantium.' nullable: true required: - libelle - code '/api/v1/contact-list-types/{id}': get: summary: 'Afficher un type de contact' operationId: afficherUnTypeDeContact description: "Permet de récupérer les détails d'un type de contact" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 1 libelle: Principale code: PCP description: 'Liste principale des contacts' properties: data: type: object properties: id: type: integer example: 1 libelle: type: string example: Principale code: type: string example: PCP description: type: string example: 'Liste principale des contacts' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '09 - Types de Contact' put: summary: 'Modifier un type de contact' operationId: modifierUnTypeDeContact description: 'Permet de modifier un type de contact' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 1 libelle: Principale code: PCP description: 'Liste principale des contacts' properties: data: type: object properties: id: type: integer example: 1 libelle: type: string example: Principale code: type: string example: PCP description: type: string example: 'Liste principale des contacts' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '09 - Types de Contact' requestBody: required: true content: application/json: schema: type: object properties: libelle: type: string description: '' example: debitis nullable: false code: type: string description: '' example: temporibus nullable: false description: type: string description: '' example: 'Maiores qui facere cum quisquam ab voluptas.' nullable: true required: - libelle - code delete: summary: 'Supprimer un type de contact' operationId: supprimerUnTypeDeContact description: 'Permet de supprimer un type de contact (soft delete)' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '09 - Types de Contact' parameters: - in: path name: id description: 'The ID of the contact list type.' example: 1 required: true schema: type: integer /api/v1/contact-list-types-active: get: summary: 'Lister les types de contacts actifs' operationId: listerLesTypesDeContactsActifs description: 'Permet de recuperer la liste des types de contacts ayant le statut actif' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '09 - Types de Contact' /api/v1/contact-list-types-import: post: summary: 'Importer les types de contacts depuis le fichier JSON' operationId: importerLesTypesDeContactsDepuisLeFichierJSON description: "Permet d'importer les types de contacts depuis le fichier import_liste.json\nL'import se base sur le champ 'code' comme clé d'unicité" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: message: 'Import terminé avec succès' data: created: 3 updated: 2 total: 5 properties: message: type: string example: 'Import terminé avec succès' data: type: object properties: created: type: integer example: 3 updated: type: integer example: 2 total: type: integer example: 5 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: "Fichier d'import introuvable" path: null description: "Le fichier import_liste.json n'existe pas dans le dossier storage/import" properties: code: type: integer example: 404 message: type: string example: "Fichier d'import introuvable" path: type: string example: null description: type: string example: "Le fichier import_liste.json n'existe pas dans le dossier storage/import" 422: description: '' content: application/json: schema: type: object example: code: 422 message: 'Format JSON invalide' path: null description: 'Le fichier JSON contient des erreurs de syntaxe' properties: code: type: integer example: 422 message: type: string example: 'Format JSON invalide' path: type: string example: null description: type: string example: 'Le fichier JSON contient des erreurs de syntaxe' 500: description: '' content: application/json: schema: type: object example: code: 500 message: "Erreur lors de l'import" path: null description: "Le fichier d'import n'a pas pu être lu" properties: code: type: integer example: 500 message: type: string example: "Erreur lors de l'import" path: type: string example: null description: type: string example: "Le fichier d'import n'a pas pu être lu" tags: - '09 - Types de Contact' /api/v1/source-contacts: get: summary: 'Lister les sources de contacts' operationId: listerLesSourcesDeContacts description: 'Permet de recuperer la liste des sources de contacts' parameters: [] responses: 200: description: '' content: text/plain: schema: type: string example: '{ "data" : [ {...}, {...} ] }' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' tags: - '10 - Sources de Contact' post: summary: 'Créer une source de contact' operationId: crerUneSourceDeContact description: 'Permet de créer une nouvelle source de contact' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 1 libelle: 'Nouveaux Convertis' code: NCO description: 'Contact provenant de la liste des nouveaux convertis' properties: data: type: object properties: id: type: integer example: 1 libelle: type: string example: 'Nouveaux Convertis' code: type: string example: NCO description: type: string example: 'Contact provenant de la liste des nouveaux convertis' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '10 - Sources de Contact' requestBody: required: false content: application/json: schema: type: object properties: libelle: type: string description: '' example: facere nullable: true code: type: string description: '' example: dolorum nullable: true description: type: string description: '' example: 'Quos est quia autem harum voluptate.' nullable: true '/api/v1/source-contacts/{id}': get: summary: 'Afficher une source de contact' operationId: afficherUneSourceDeContact description: "Permet de récupérer les détails d'une source de contact" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 1 libelle: 'Nouveaux Convertis' code: NCO description: 'Contact provenant de la liste des nouveaux convertis' properties: data: type: object properties: id: type: integer example: 1 libelle: type: string example: 'Nouveaux Convertis' code: type: string example: NCO description: type: string example: 'Contact provenant de la liste des nouveaux convertis' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '10 - Sources de Contact' put: summary: 'Modifier une source de contact' operationId: modifierUneSourceDeContact description: 'Permet de modifier une source de contact' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: id: 1 libelle: 'Nouveaux Convertis' code: NCO description: 'Contact provenant de la liste des nouveaux convertis' properties: data: type: object properties: id: type: integer example: 1 libelle: type: string example: 'Nouveaux Convertis' code: type: string example: NCO description: type: string example: 'Contact provenant de la liste des nouveaux convertis' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' 422: description: '' content: text/plain: schema: type: string example: '{ "message" : "The given data was invalid.", "error" : {...}}' tags: - '10 - Sources de Contact' requestBody: required: false content: application/json: schema: type: object properties: libelle: type: string description: '' example: laudantium nullable: true code: type: string description: '' example: in nullable: true description: type: string description: '' example: 'Cupiditate ut consequatur deserunt consequuntur autem corrupti recusandae quas.' nullable: true delete: summary: 'Supprimer une source de contact' operationId: supprimerUneSourceDeContact description: 'Permet de supprimer une source de contact (soft delete)' parameters: [] responses: 204: description: '' 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Bad token' properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Bad token' 404: description: '' content: application/json: schema: type: object example: code: 404 message: 'Resource not found' path: null description: 'No query result found for this Id' properties: code: type: integer example: 404 message: type: string example: 'Resource not found' path: type: string example: null description: type: string example: 'No query result found for this Id' tags: - '10 - Sources de Contact' parameters: - in: path name: id description: 'The ID of the source contact.' example: 1 required: true schema: type: integer /api/v1/roles: get: summary: '' operationId: getApiV1Roles description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints post: summary: '' operationId: postApiV1Roles description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: title: type: string description: '' example: delectus nullable: false permissions: type: array description: '' example: - 18 items: type: integer required: - title '/api/v1/roles/{id}': get: summary: '' operationId: getApiV1RolesId description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints put: summary: '' operationId: putApiV1RolesId description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: title: type: string description: '' example: unde nullable: false permissions: type: array description: '' example: - 3 items: type: integer required: - title delete: summary: '' operationId: deleteApiV1RolesId description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the role.' example: 1 required: true schema: type: integer /api/v1/statut-appels: get: summary: '' operationId: getApiV1StatutAppels description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints post: summary: '' operationId: postApiV1StatutAppels description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: libelle: type: string description: '' example: dolorem nullable: true code: type: string description: '' example: facere nullable: true description: type: string description: '' example: 'Repudiandae nisi omnis amet.' nullable: true /api/v1/teams: get: summary: '' operationId: getApiV1Teams description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints post: summary: '' operationId: postApiV1Teams description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: natus nullable: false required: - name '/api/v1/teams/{id}': get: summary: '' operationId: getApiV1TeamsId description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints put: summary: '' operationId: putApiV1TeamsId description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: quia nullable: false required: - name delete: summary: '' operationId: deleteApiV1TeamsId description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the team.' example: 19 required: true schema: type: integer /api/v1/user-alerts: get: summary: '' operationId: getApiV1UserAlerts description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints post: summary: '' operationId: postApiV1UserAlerts description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: alert_text: type: string description: '' example: voluptate nullable: false alert_link: type: string description: '' example: accusantium nullable: true users: type: array description: '' example: - 15 items: type: integer required: - alert_text /api/v1/content-pages/media: post: summary: '' operationId: postApiV1ContentPagesMedia description: '' parameters: [] responses: { } tags: - Endpoints /api/v1/content-pages: get: summary: '' operationId: getApiV1ContentPages description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints post: summary: '' operationId: postApiV1ContentPages description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: title: type: string description: '' example: suscipit nullable: false categories: type: array description: '' example: - 12 items: type: integer tags: type: array description: '' example: - 13 items: type: integer required: - title /api/v1/programmes: get: summary: '' operationId: getApiV1Programmes description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints post: summary: '' operationId: postApiV1Programmes description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: nom: type: string description: '' example: aut nullable: false description: type: string description: '' example: 'Autem iste dolor aut ut aut laudantium.' nullable: true required: - nom '/api/v1/programmes/{id}': get: summary: '' operationId: getApiV1ProgrammesId description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints delete: summary: '' operationId: deleteApiV1ProgrammesId description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the programme.' example: 1 required: true schema: type: integer /api/v1/bilans: get: summary: '' operationId: getApiV1Bilans description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints post: summary: '' operationId: postApiV1Bilans description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: nom: type: string description: '' example: rerum nullable: false code: type: string description: '' example: nihil nullable: true description: type: string description: '' example: 'Sit quae dolor numquam voluptas beatae.' nullable: true required: - nom '/api/v1/bilans/{id}': get: summary: '' operationId: getApiV1BilansId description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints delete: summary: '' operationId: deleteApiV1BilansId description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the bilan.' example: 1 required: true schema: type: integer /api/v1/formations: get: summary: '' operationId: getApiV1Formations description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints post: summary: '' operationId: postApiV1Formations description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: nom: type: string description: '' example: iure nullable: false description: type: string description: '' example: 'Ipsa distinctio fugiat veritatis ut.' nullable: true required: - nom '/api/v1/formations/{id}': get: summary: '' operationId: getApiV1FormationsId description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints delete: summary: '' operationId: deleteApiV1FormationsId description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the formation.' example: 18 required: true schema: type: integer /api/v1/suivi-formations: get: summary: '' operationId: getApiV1SuiviFormations description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints post: summary: '' operationId: postApiV1SuiviFormations description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: date_formation: type: string description: 'Must be a valid date in the format Y-m-d.' example: '2026-05-27' nullable: true /api/register: post: summary: '' operationId: postApiRegister description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: repellat nullable: false email: type: string description: 'value doit être une adresse e-mail valide.' example: irwin13@example.com nullable: false password: type: string description: 'value doit être au moins 6 caractères.' example: 'k|YvImT}' nullable: false required: - name - email - password '/api/v1/statut-appels/{id}': get: summary: '' operationId: getApiV1StatutAppelsId description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints put: summary: '' operationId: putApiV1StatutAppelsId description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: libelle: type: string description: '' example: in nullable: true code: type: string description: '' example: temporibus nullable: true description: type: string description: '' example: 'Quia placeat sed alias id adipisci voluptatem voluptate.' nullable: true delete: summary: '' operationId: deleteApiV1StatutAppelsId description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the statut appel.' example: 1 required: true schema: type: integer '/api/v1/user-alerts/{id}': get: summary: '' operationId: getApiV1UserAlertsId description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints delete: summary: '' operationId: deleteApiV1UserAlertsId description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the user alert.' example: 1 required: true schema: type: integer '/api/v1/content-pages/{id}': get: summary: '' operationId: getApiV1ContentPagesId description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints put: summary: '' operationId: putApiV1ContentPagesId description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: title: type: string description: '' example: quis nullable: false categories: type: array description: '' example: - 7 items: type: integer tags: type: array description: '' example: - 2 items: type: integer required: - title delete: summary: '' operationId: deleteApiV1ContentPagesId description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the content page.' example: 16 required: true schema: type: integer '/api/v1/suivi-formations/{id}': get: summary: '' operationId: getApiV1SuiviFormationsId description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: code: 401 message: Unauthorized path: null description: 'Token expired' userid: null accessToken: null properties: code: type: integer example: 401 message: type: string example: Unauthorized path: type: string example: null description: type: string example: 'Token expired' userid: type: string example: null accessToken: type: string example: null tags: - Endpoints put: summary: '' operationId: putApiV1SuiviFormationsId description: '' parameters: [] responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: date_formation: type: string description: 'Must be a valid date in the format Y-m-d.' example: '2026-05-27' nullable: true delete: summary: '' operationId: deleteApiV1SuiviFormationsId description: '' parameters: [] responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the suivi formation.' example: 16 required: true schema: type: integer tags: - name: '01 - User Authentication' description: '' - name: '02 - Utilisateurs' description: '' - name: '03 - Contacts' description: '' - name: '04 - Affectations de suivi' description: '' - name: '05 - Sessions de bilans' description: '' - name: '06 - Suivi téléphonique' description: '' - name: '07 - Paramètres' description: '' - name: '08 - Certificats' description: '' - name: '09 - Types de Contact' description: '' - name: '10 - Sources de Contact' description: '' - name: Endpoints description: '' components: securitySchemes: default: type: http scheme: bearer description: "Obtenez un jeton **JWT Keycloak** via le front (connexion SSO) ou l’endpoint POST /api/login.\nDans **Try it out**, saisissez le token dans l’en-tête Authorization (préfixe Bearer déjà inclus dans l’exemple).\nLe même token est réutilisé sur tous les endpoints tant que la page reste ouverte." security: - default: []