Documentation de l'API Izzydiag

Introduction

L'API Izzydiag a pour but de faciliter la récupération des données des missions réalisées par les diagnostiqueurs de notre plateforme.
Vous pourrez télécharger les rapports et avoir accès aux données des visites virtuelles.

Authentification

L'authentification à l'API Izzydiag est basée sur Laravel Sanctum. Pour accéder aux endpoints, il est nécessaire de créer un compte sur la plateforme et d'obtenir un jeton d'accès. Incluez ce jeton dans l'en-tête Authorization de chaque requête, sous la forme Bearer {token}.

Expiration du token

Les tokens ont une durée de vie limitée. Une fois qu'un token a expiré, vous recevrez une réponse 401 Unauthorised à toutes les requêtes utilisant ce token. Si cela se produit, vous devrez générer un nouveau token en utilisant à nouveau l'endpoint d'authentification.

Header

L'API renvoie des données au format JSON. Pour indiquer à l'API que vous attendez une réponse au format JSON, vous devez inclure l'entête avec la valeur dans vos requêtes HTTP.

Vous devez également inclure l'en-tête avec la valeur dans toutes les requêtes.

Format des Réponses d'API

Chaque réponse de l'API Izzydiag sera renvoyée dans un format JSON standardisé. Le corps de chaque réponse comprendra les éléments suivants :

  • `` : Une chaîne de caractères indiquant l'état de la réponse. Il peut prendre les valeurs "success", "warning" ou "error", selon le résultat de la requête.
  • `` : Une chaîne de caractères décrivant plus en détail la réponse ou l'état de la requête. C'est généralement utilisé pour transmettre des messages d'erreur ou de succès détaillés.
  • `` : Il s'agit des données renvoyées par la requête. Dans le cas d'une erreur ou d'un avertissement, cette clé peut être null.
  • `` : Il s'agit d'un objet qui n'est présent que dans le cas d'une réponse d'avertissement. Il contient des détails supplémentaires sur les erreurs rencontrées lors du traitement de la requête.

Routes

URL de Base et URL de Développement

L'API Izzydiag est accessible via deux environnements différents : l'environnement de production et l'environnement de développement.

  • L'environnement de production est destiné à l'utilisation réelle de l'API et est accessible à l'URL de base suivante : ``
  • L'environnement de développement est destiné aux tests et au développement. Il s'agit d'un environnement séparé où les modifications et les tests n'affectent pas l'environnement de production. Il est accessible à l'URL suivante : ``
Url Type Description
/api/agence-immobiliere/connexion Se connecter à l'api.
/api/agence-immobiliere/deconnexion Se déconnecter de l'api.
/api/agence-immobiliere/commande/parcourir Récupérer la liste des commandes de l'agence immobilière.
/api/agence-immobiliere/commande//voir Récupérer les détails d'une commande.
/api/agence-immobiliere/commande/rapport//telechargement Télécharger un rapport.
/api/agence-immobiliere/commande/visit-virtuel//telechargement Télécharger une image de visite virtuelle.
/api/agence-immobiliere/agent-immobilier/parcourir Récupérer la liste des agents immobiliers.
/api/agence-immobiliere/agent-immobilier//voir Récupérer les détails d'un agent immobilier.
/api/agence-immobiliere/agent-immobilier//enregistrer Enregistrer un agent immobilier.
/api/agence-immobiliere/agent-immobilier//modifier Modifier un agent immobilier.
/api/agence-immobiliere/agent-immobilier//supprimer Supprimer un agent immobilier.

Il est important de noter que, bien que ces environnements soient séparés, ils partagent la même structure d'API. Les endpoints et les méthodes seront les mêmes dans les deux environnements. Cependant, les données renvoyées et les résultats des requêtes peuvent différer, car les environnements ont des bases de données séparées et peuvent avoir des versions différentes de l'API.

Assurez-vous toujours de tester vos intégrations dans l'environnement de développement avant de les déployer en production pour éviter des erreurs imprévues ou des problèmes potentiels

Connexion

: POST
: /api/v1/agence-immobiliere/connexion
  • email (string, requis) - L'adresse e-mail de l'agence immobilière.
  • password (string, requis) - Le mot de passe de l'agence immobilière.
Un message de succès et le jeton d'accès (api_token).
200 (OK), 422 (Erreur de validation)

JSON

Description des propriétés de la réponse JSON

Propriété Description
api_token Le jeton d'accès de l'agence immobilière. (Bearer Token)

Déconnexion

: POST
: /api/v1/agence-immobiliere/deconnexion
Authentification : Bearer {token}.
Un message de succès.
200 (OK), 401 (Non Autorisé)

JSON

Parcourir les commandes

: GET
: /api/v1/agence-immobiliere/commande/parcourir
Bearer {token}.
  • page - Pour paginer les commandes.
  • reports - Pour inclure les rapports liés aux commandes.
  • virtual_visits - Pour inclure les visites virtuelles liées aux commandes.
  • diagnostics - Pour inclure les diagnostics liés aux commandes.
Une liste de commandes filtrées avec leurs détails et les relations optionnelles demandées.
200 (OK), 401 (Non Autorisé)

JSON

Description des propriétés de la réponse JSON

Propriété et filtre(s) Description
id l'identifiant unique de la commande.
created_at
la date de création de la commande.
purchase_order_number
le numéro de commande.
status
status

Le champ "status" représente le statut de la commande. Il peut avoir les valeurs suivantes :

  • `` : La commande a été annulée.
  • `` - En attente de validation
  • `` - La commande a été planifiée.
  • `` - La commande est terminée, les rapports sont disponibles.

Pour filtrer les commandes en fonction de leur statut lors de l'appel à l'endpoint
``, vous pouvez utiliser le paramètre `` dans la chaîne de requête, par exemple : `` pour obtenir toutes les commandes qui ont été réalisées.

payment_status
payment_status

Le champ "payment_status" représente le statut de paiement de la commande. Il peut avoir les valeurs suivantes :

  • `` (chaîne vide) : Aucun paiement n'a encore été effectué ou enregistré pour la commande.
  • `` - Le paiement a réussi.
  • `` - Le paiement a échoué.
  • `` - Le réglement de la commande ne s'effectue pas en ligne.

Pour filtrer les commandes en fonction de leur statut de paiement lors de l'appel à l'endpoint
``, vous pouvez utiliser le paramètre `` dans la chaîne de requête, par exemple :
`` pour obtenir toutes les commandes dont le paiement a réussi.

payment_date
la date de paiement de la commande.
intervention_date
la date d'intervention de la commande.
diagnostician_last_name
le nom du diagnostiqueur.
diagnostician_first_name
le prénom du diagnostiqueur.
diagnostician_cell_phone
le numéro de téléphone du diagnostiqueur.
diagnostician_email
l'adresse e-mail du diagnostiqueur.
floor le numéro d'étage de la commande.
type_of_project
type_of_project

Le champ "type_of_project" représente le type de projet associé à la commande. Il peut avoir les valeurs suivantes :

  • `` : Vente - Le projet concerne la vente d'un bien immobilier.
  • `` : Louer - Le projet concerne la location d'un bien immobilier.
  • `` : Diagnostics unitaires - Le projet concerne des diagnostics spécifiques à un bien immobilier.

Pour filtrer les commandes en fonction de leur type de projet lors de l'appel à l'endpoint
``, vous pouvez utiliser le paramètre `` dans la chaîne de requête, par exemple :
`` pour obtenir toutes les commandes qui concernent la location d'un bien immobilier.

type_of_building
type_of_building

Le champ "type_of_building" représente le type de bien immobilier associé à la commande. Il peut avoir les valeurs suivantes :

  • `` : Maison
  • `` : Appartement
  • `` : Local commercial

Pour filtrer les commandes en fonction de leur type de bien immobilier lors de l'appel à l'endpoint
``, vous pouvez utiliser le paramètre `` dans la chaîne de requête, par exemple :
`` pour obtenir toutes les commandes qui concernent une maison.

date_building
date_building

Le champ "date_building" représente la date de construction du bien immobilier associé à la commande. Il peut avoir les valeurs suivantes :

  • `` : Avant 1949
  • `` : Entre 1949 et 1997
  • `` : Après 1997
  • `` : Inconnue

Pour filtrer les commandes en fonction de la date de construction du bien immobilier lors de l'appel à l'endpoint
``, vous pouvez utiliser le paramètre `` dans la chaîne de requête, par exemple :
`` pour obtenir toutes les commandes qui concernent un bien immobilier construit avant 1949.

area
area

Le champ "area" représente la surface en mètres carrés (m²) d'un bien immobilier. Il peut avoir les valeurs suivantes :

  • `` : moins de 40 m².
  • `` : entre 40 m² et 80 m².
  • `` : entre 80 m² et 120 m².
  • `` : entre 120 m² et 160 m².
  • `` : entre 160 m² et 200 m².
  • `` : entre 200 m² et 240 m².
  • `` : plus de 240 m².

Pour filtrer les biens immobiliers en fonction de leur surface lors de l'appel à l'endpoint
``, vous pouvez utiliser le paramètre `` dans la chaîne de requête, par exemple : `` pour obtenir tous les biens immobiliers ayant une surface entre 40 m² et 80 m².

gaz
gaz

Le champ "gaz" représente le type d'installation gaz de la propriété. Il peut avoir les valeurs suivantes :

  • `` : Gaz - de 15 ans - L'installation gaz de la propriété a moins de 15 ans.
  • `` : Gaz + de 15 ans - L'installation gaz de la propriété a plus de 15 ans.
  • `` : Aucune - La propriété ne dispose pas d'installation gaz.
  • `` : Inconnue - Le type ou la présence d'installation gaz de la propriété est inconnu.

Pour filtrer les commandes en fonction du type d'installation électrique de la propriété lors de l'appel à l'endpoint
``, vous pouvez utiliser le paramètre `` dans la chaîne de requête, par exemple : `` pour obtenir toutes les commandes pour les propriétés qui ont une installation gaz de plus de 15 ans.

elec
elec

Le champ "elec" représente le type d'installation électrique de la propriété. Il peut avoir les valeurs suivantes :

  • `` : Elec - de 15 ans - L'installation électrique de la propriété a moins de 15 ans.
  • `` : Elec + de 15 ans - L'installation électrique de la propriété a plus de 15 ans.
  • `` : Aucune - La propriété ne dispose pas d'installation électrique.
  • `` : Inconnue - Le type d'installation électrique de la propriété est inconnu.

Pour filtrer les commandes en fonction du type d'installation électrique de la propriété lors de l'appel à l'endpoint
``, vous pouvez utiliser le paramètre `` dans la chaîne de requête, par exemple : `` pour obtenir toutes les commandes pour les propriétés qui ont une installation électrique de plus de 15 ans.

operating_address
L'adresse complète du bien.
operating_street_number
Le numéro de rue du bien.
operating_street_name
Le nom de rue du bien.
operating_postal_code
Le code postal du bien.
operating_city
La ville du bien.
operating_longitude
La longitude du bien.
operating_latitude
La latitude du bien.
client_first_name
Le prénom du client.
client_last_name
Le nom du client.
client_cell_phone
Le numéro de téléphone du client.
client_email
L'adresse e-mail du client.
client_billing_address
L'adresse complète de facturation du client.
additional_information Les informations complémentaires de la commande.
person_present_first_name
Le prénom de la personne présente lors de l'intervention.
person_present_last_name
Le nom de la personne présente lors de l'intervention.
person_present_cell_phone
Le numéro de téléphone de la personne présente lors de l'intervention.
diagnostics Un tableau des diagnostics réalisés.
reports Un tableau des rapports déposés.
virtual_visits Un tableau des visites virtuelles disponibles.

Objet `diagnostics`

Propriété Description
name Le nom du diagnostic.

Objet `reports`

Propriété Description
url L'URL pour télécharger le rapport.

Objet `virtual_visits`

Propriété Description
url L'URL de la visite virtuelle.
plateform La plateforme sur laquelle la visite virtuelle est hébergée.
photos Un tableau de photos de la visite virtuelle.

Objet `photos`

Propriété Description
url L'URL pour télécharger la photo.
  • Les lettres "eq", "gt" et "lt" signifient respectivement "égal à", "supérieur à" et "inférieur à".
  • Par exemple, pour filtrer les commandes avec un statut spécifique, la requête serait : ``
  • Pour inclure les rapports dans la réponse, ajoutez le paramètre de requête `` : ``

Voir une commandes

: GET
: /api/v1/agence-immobiliere/commande/{order_id}/voir
Bearer {token}.
  • Les diagnostics, rapports, données de visite virtuelle sont inclues dans la réponse.
Si la requête est réussie, un code de statut HTTP 200 est renvoyé, avec un objet JSON représentant la commande demandée. Cet objet inclut également les rapports, les visites virtuelles et les diagnostics liés à cette commande.
200 (OK), 401 (Non Autorisé), 404 (Not Found) la commande demandée n'a pas été trouvée.

Télécharger un rapport

: GET
: /api/v1/agence-immobiliere/commande/rapport/{report_id}/telechargement
Bearer {token}.
  • report (int, requis) - L'identifiant du rapport.
Le rapport de la commande en format PDF.
200 (OK), 401 (Non Autorisé), 403 (Commande non payée)

Télécharger une image de visite virtuelle

: GET
: /api/v1/agence-immobiliere/commande/visit-virtuel/{virtual_visit_photo_id}/telechargement
Bearer {token}.
  • virtualVisitPhoto (int, requis) - L'identifiant de la photo de la visite virtuelle.
L'image de la visite virtuelle.
200 (OK), 401 (Non Autorisé), 403 (Commande non payée)

Parcourir les agents immobiliers

: GET
: /api/v1/agence-immobiliere/agent-immobilier/parcourir
Bearer {token}.
  • page - Pour paginer les agents immobilier.
Une liste de agents filtrées avec leurs détails.
200 (OK), 401 (Non Autorisé)

JSON

Description des propriétés de la réponse JSON

Propriété Description
id l'identifiant unique de l'agent immobilier.
created_at
La date de création de l'agent immobilier.
first_name
Le prénom de l'agent immobilier.
last_name
Le nom de l'agent immobilier.
phone
Le numéro de téléphone de l'agent immobilier.
email
L'adresse email de l'agent immobilier.
charges_enabled
Un booléen indiquant si l'agent immobilier a activé son compte Stripe pour recevoir les frais d'introduction.
promotional_code
Le code promotionnel de l'agent immobilier.
  • Les lettres "eq", "gt" et "lt" signifient respectivement "égal à", "supérieur à" et "inférieur à".
  • Par exemple, pour filtrer les commandes avec un statut spécifique, la requête serait : ``

Voir un agent immobiliers

: GET
: /api/v1/agence-immobiliere/agent-immobilier/{real_estate_agent_id}/voir
Bearer {token}.
Si la requête est réussie, un code de statut HTTP 200 est renvoyé, avec un objet JSON représentant l'agent immobilier demandé.
200 (OK), 401 (Non Autorisé)

Ajouter un agent immobilier

Un mail est envoyé à l'agent immobilier avec un lien pour qu'il puisse créer son propre mot de passe.

: POST
: /api/v1/agence-immobiliere/agent-immobilier/enregistrer
Bearer {token}.
  • first_name (string, requis) - Prénom de l'agent immobilier.
  • last_name (string, requis) - Nom de l'agent immobilier.
  • phone (string, requis) - Numéro de téléphone de l'agent immobilier au format 10 chiffres.
  • email (string, requis) - Adresse email de l'agent immobilier.
  • password (string, optionnelle) - Mot de passe de l'agent immobilier. Doit contenir au moins une lettre majuscule, une lettre minuscule et un chiffre.
  • Les espaces dans le numéro de téléphone sont ignorés.
  • Le prénom est transformé en minuscules avec la première lettre en majuscule.
  • Le nom est transformé en majuscules.
  • Les accents du nom sont supprimés.
Détails de l'agent immobilier nouvellement créé.
200 (OK), 401 (Non Autorisé), 403 (Interdit)

Mettre à jour un agent immobilier

: PUT
: /api/v1/agence-immobiliere/agent-immobilier/{real_estate_agent_id}/modifier
Bearer {token}.
  • first_name (string, optionnelle) - Prénom de l'agent immobilier.
  • last_name (string, optionnelle) - Nom de l'agent immobilier.
  • phone (string, optionnelle) - Numéro de téléphone de l'agent immobilier au format 10 chiffres.
  • email (string, optionnelle) - Adresse email de l'agent immobilier.
  • password (string, optionnelle) - Mot de passe de l'agent immobilier. Doit contenir au moins une lettre majuscule, une lettre minuscule et un chiffre.
  • Les espaces dans le numéro de téléphone sont ignorés.
  • Le prénom est transformé en minuscules avec la première lettre en majuscule.
  • Le nom est transformé en majuscules.
  • Les accents du nom sont supprimés.
Détails de l'agent immobilier nouvellement créé.
200 (OK), 401 (Non Autorisé), 403 (Interdit)

Supprimer un agent immobilier

Tout agent supprimé ne pourra plus se connecter au site web.
Toutes ces données reste cependant dans la base de données.
Pour une suppression complète, veuillez contacter le support.

: DELETE
: /api/v1/agence-immobiliere/agent-immobilier/{real_estate_agent_id}/supprimer
Bearer {token}.
Si la requête est réussie, un code de statut HTTP 200 est renvoyé, avec un message confirmant que l'agent immobilier est supprimé.
200 (OK), 401 (Non Autorisé), 403 (Interdit)