Aller au contenu

22. Relier les pages au serveur

Quand le serveur et les pages sont dans le même fichier, Humalis vérifie chaque requête à la compilation : la route existe, les champs existent, les types sont les bons, et la personne a le droit.

serveur "boutique" :
    donnee produit :
        nom : texte
        prix : nombre
    donnee avis :
        note : nombre
        commentaire : texte
    route "produits" :
        tout le monde peut lire produit
        seul admin peut modifier produit
    route "avis" :
        tout le monde peut lire avis
        connecte peut creer avis
        seul admin peut supprimer avis

page "boutique" :
    variable produits = []
    variable note = 5
    titre "Boutique"
    quand la page se charge :
        envoyer requete vers "produits" dans produits
    pour chaque p dans produits :
        texte "{p.nom} : {p.prix en euros}"
    si utilisateur est connecte :
        champ "commentaire"
        bouton "Publier"
        quand l'utilisateur clique sur "Publier" :
            envoyer requete vers "avis" avec note et champ "commentaire"
            afficher reussite "Merci pour ton avis"
        bouton "Se déconnecter"
        quand l'utilisateur clique sur "Se déconnecter" :
            se deconnecter
    sinon :
        lien "Se connecter pour donner un avis" vers "connexion"

page "connexion" :
    titre "Connexion"
    formulaire "connexion" :
        champ email "email" avec obligatoire
        champ mot de passe "mot de passe" avec obligatoire
        bouton "Se connecter"
    quand le formulaire "connexion" est soumis :
        se connecter avec champ "email" et champ "mot de passe"
        rediriger vers "boutique"
  • envoyer requete vers "produits" dans produits lit la liste.

  • envoyer requete vers "avis" avec note et champ "commentaire" envoie.

  • si utilisateur est connecte :, si utilisateur est admin :, se connecter, se deconnecter gèrent la session.

Réagir à un échec

serveur "boutique" :
    donnee commande :
        nom : texte
    route "commandes" :
        tout le monde peut creer commande

page "commande" :
    titre "Commander"
    formulaire "commande" :
        champ "Nom"
        bouton "Commander"
    quand le formulaire "commande" est soumis :
        essayer :
            envoyer requete vers "commandes" avec champ "Nom"
            afficher reussite "Commande envoyée"
        si erreur :
            afficher erreur "La commande n'est pas partie : {raison}"

Dans si erreur :, raison dit ce qui n'a pas marché. Dans un formulaire, les champs restent remplis.