💛PUT user/profile

Nom de l'API : /user/profile (PUT)

Description : Cette API permet aux utilisateurs authentifiés de mettre à jour leur profil et les informations liées à leur espace de travail. Elle gère à la fois les données utilisateur et les données de l'espace de travail.

Endpoint : /user/profile

Méthode : PUT

Authentification : Requise

Paramètres d'entrée :

  1. user (type: object) : Informations de l'utilisateur à mettre à jour

  2. workspace_info (type: object) : Informations de l'espace de travail à mettre à jour

  3. workspace_id (type: text) : Identifiant de l'espace de travail

Fonctionnement détaillé :

  1. Get Record From users :

    • Récupère les informations de l'utilisateur actuel

    • Utilise l'ID de l'utilisateur authentifié (auth:id)

    • Retourne le résultat sous le nom "current_user"

  2. Query All Records From workspace :

    • Récupère les informations de l'espace de travail de l'utilisateur

    • Filtre :

      • Join avec workspace_users sur workspace_users.users_id == current_user.id

      • db:workspace.id == db:workspace.id (probablement pour s'assurer que l'espace existe)

    • Retourne le résultat sous le nom "current_workspace"

  3. Get Record From messages :

    • Récupère le message d'erreur potentiel

    • Filtre : internal_name == "settings_info_error"

    • Retourne le résultat sous le nom "error_message"

  4. Precondition :

    • Vérifie que l'espace de travail existe

    • Condition : var:current_workspace|is_empty == false

    • Message d'erreur : error_message

    • Type d'erreur : Standard

  5. Edit Record In users :

    • Met à jour les informations de l'utilisateur

    • Trouve l'utilisateur par son ID (current_user.id)

    • Champs modifiables : email, password (et potentiellement d'autres champs non visibles dans l'image)

    • Retourne le résultat sous le nom "updated_user"

  6. Edit Record In workspace :

    • Met à jour les informations de l'espace de travail

    • Trouve l'espace de travail par son ID (current_workspace.id)

    • Champs modifiables :

      • name : input:object workspace_info.name

      • users : probablement une liste d'utilisateurs associés à l'espace de travail

    • Retourne le résultat sous le nom "updated_workspace"

  7. Get Record From messages :

    • Récupère le message de confirmation

    • Filtre : internal_name == "settings_updated"

    • Retourne le résultat sous le nom "response"

Réponse : L'API renvoie un objet JSON (var: response) contenant probablement :

  • Un message de confirmation (response.message)

  • Les informations mises à jour de l'utilisateur (updated_user)

  • Les informations mises à jour de l'espace de travail (updated_workspace)

Gestion des erreurs :

  • Si l'espace de travail n'existe pas : Renvoie le message d'erreur défini dans "error_message"

Sécurité :

  • L'API nécessite une authentification

  • Vérifie que l'utilisateur a accès à l'espace de travail avant toute modification

Notes pour les développeurs :

  • Assurez-vous de valider et de nettoyer toutes les entrées utilisateur avant de les enregistrer dans la base de données

  • Considérez l'ajout de vérifications supplémentaires pour s'assurer que l'utilisateur a les droits nécessaires pour modifier l'espace de travail

  • Cette API gère à la fois les mises à jour du profil utilisateur et de l'espace de travail, ce qui pourrait nécessiter une gestion soignée des transactions en cas d'échec partiel de la mise à jour.

Considérations de sécurité :

  • Assurez-vous que les mots de passe sont correctement hachés avant d'être stockés dans la base de données

  • Vérifiez que l'utilisateur a les permissions nécessaires pour modifier les informations de l'espace de travail, en particulier si la modification des utilisateurs associés est autorisée

Gestion des erreurs :

  • En cas d'échec de la mise à jour de l'une des tables (users ou workspace), assurez-vous que les changements sont annulés pour maintenir la cohérence des données

Cette API offre une fonctionnalité complète pour mettre à jour à la fois le profil utilisateur et les informations de l'espace de travail en une seule opération, ce qui nécessite une gestion soignée des transactions et des vérifications de sécurité.

Dernière mise à jour