Skip to content

Commit

Permalink
✨ Handle forms
Browse files Browse the repository at this point in the history
* ✨ Ticketing domain

* ✨ Empty zammad objects

* ⚡ Speed up tests

* ✨ Zammad client uses axios

* ♻️ Use request method

* ✨ Use zammad access token

* ✨ Use config base url

* ♻️ Extract axios instance

* ♻️ Move test

* ✨ Add createTicket method

* ✨ Pass correct data to ticket creation

* ✨ Use x-on-behalf-of header

* ✅ Add empty test for zammad manager

* ✨ Zammad manager uses zammad client

* ✨ Add author email to DTO

* ✨ Ticket manager calls the client

* ♻️ Rename title to subject

* ✨ Add create support ticket usecase

* ✨ Service container

* ✨ Empty support ticket controller

* ✅ Add simple controller test

* ➕ Add yup

* ✨ Define validation function

* ✨ Add validator

* ✨ Do not abort early

* ✨ Send validation errors to rendering

* ✨ Render no error when ticket is created

* ✨ Render global error when ticket creation fails

* ♻️ Refactor test

* ♻️ Simplify try catch flow

* ✅ Increase domain test coverage

* ✨ Add route for form post

* ⚰️ No need to create user before creating a ticket

* 🏷️ Add form type to answers

* ⚰️ Unused template

* ✨ Handle form config

* ✨ Set status to 422 on validation error

* ✨ Set status to 502 on zammad error

* ✨ Render form

* 🔧 Configur form question

* ✨ Label in red when in eerror

* ✨ Display email in error

* ♻️ Factorize error detection

* ♻️ Simplify template

* 🐛 Decode form submission

* ✨ Display user input

* 🔒 Avoid bot form submission

* ✨ Working form submission

* ✨ Display server error

* 🐛 Duplicated turbo frame

* ♻️ Extract first marco to a separate file

* 🔧 Change question tree for tests and demo

* ✨ Form must have a recipient

* ✨ Use recipient in form

* 💬 Change test form title

* 💄 Increase textarea size

* 📝 Update example env file

* ✨ Add from an to in zammad call

* 🐛 Create user before posting ticket

* 🐛 User creation can fail

* ✨ Redirect after success

* ✨ Add thank you controller

* ✨ Add thank you page

* 🔧 Add a test case for submission failure

* ➕ Add stimulus

* 💩 Redirect to thank you and handle errors using stimulus
  • Loading branch information
Bernardstanislas authored Apr 23, 2021
1 parent 17d4dac commit c2d6447
Show file tree
Hide file tree
Showing 33 changed files with 729 additions and 66 deletions.
2 changes: 2 additions & 0 deletions .env.dist
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
NODE_ENV=development
PORT=3000
ZAMMAD_ACCESS_TOKEN=api-key
ZAMMAD_BASE_URL=base-url
5 changes: 5 additions & 0 deletions config/answers/contenu.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Le contenu est éditable en [markdown]() afin de **faciliter** le formattage d'une réponse.

Il est également possible de mettre un call-to-action sous forme de bouton, comme ci-dessous.

<button href="https://github.com/etalab/support.data.gouv.fr/blob/master/config/answers/contenu.md">Voir le code de ce fichier</button>
5 changes: 0 additions & 5 deletions config/answers/demandes-ouverture.md

This file was deleted.

5 changes: 0 additions & 5 deletions config/answers/demandes-valeurs-foncieres.md

This file was deleted.

51 changes: 17 additions & 34 deletions config/question-tree.yaml
Original file line number Diff line number Diff line change
@@ -1,44 +1,27 @@
---
title: Qui êtes-vous ?
choices:
- label: Un particulier
- label: Un testeur de cet outil de support
link:
title: Comment pouvons-nous vous aider ?
choices:
- label: J'ai une question relative à des données à caractère personnel
- label: Je veux tester le formulaire de contact
link:
title: 'Votre question concerne :'
form:
title: Contactez-nous
recipient: [email protected]
- label: Je veux tester le formulaire de contact quand Zammad ne marche pas
link:
form:
title: Contactez-nous (mais ça ne va pas marcher hihi)
recipient: [email protected]
- label: Je veux tester une sous-question
link:
title: 'Vous voulez tester :'
choices:
- label: La base de données des demandes de valeurs foncières (transactions
immobilières)
link:
path: answers/demandes-valeurs-foncieres.md
- label: Le Repertoire national des associations (RNA)
link:
content: TBD
- label: La base Sirene des entreprises et de leurs établissements (SIREN,
SIRET)
- label: Du contenu en markdown
link:
content: TBD
- label: Le fichier des personnes décédées
path: answers/contenu.md
- label: Du contenu brut
link:
content: TBD
- label: J'ai une question sur une procédure administrative
link:
content: >
Le site data.gouv.fr ne permet pas aux particuliers de remplir des formalités administratives et notre support n'est pas en mesure de vous aider sur ces sujets. Vous pouvez vous référer au site Service-Public.fr le cas échéant.<br>
CTA : service-public.fr
- label: J'ai constaté une erreur ou j'ai une question relative à un jeu de donnée publié sur data.gouv.fr
link:
content: >
Si vous avez constaté une erreur sur un jeu de donnée ou si vous avez une question relative à celui-ci vous pouvez vous adresser directement au producteur des données dans l'espace de discussion dédié.<br>
Celui-ci se situe en bas de page de chaque jeux de données. Voir un exemple.<br>
En effet l'équipe de data.gouv.fr n'est pas à l'origine des données publiées sur la plateforme. Ce sont les producteurs des données qui sont à même de répondre.
- label: "J'ai une demande relative à l'ouverture des données publiques : données absentes ou difficiles à trouver"
link:
path: answers/demandes-ouverture.md
- label: J'ai un problème technique dans l'utilisation de la plateforme data.gouv.fr
link:
content: >
Pour toute question ou problème relatifs à l'utilisation du portail, en tant qu'utilisateur ou en tant que producteur, nous vous invitions à consulter la documentation. Si vous n'y trouver pas une réponse à votre question, vous pouvez nous écrire à l'adresse : [email protected]<br>
CTA : Voir la documentation technique
content: Le contenu brut se configure directement dans le fichier config/question-tree.yaml
Loading

0 comments on commit c2d6447

Please sign in to comment.