<page xmlns="http://projectmallard.org/1.0/"
      type="topic" id="api-user" xml:lang="fr">

<info>
  <link type="guide" xref="index#api" />
  <revision docversion="0.1" date="2013-01-04" status="draft"/>
  <credit type="author">
    <name>Frédéric Péters</name>
    <email>fpeters@entrouvert.com</email>
  </credit>
  <desc>Profil utilisateur, formulaires associés, etc.</desc>

</info>

<title>Récupération des données d'un utilisateur</title>

<p>
Il s'agit ici d'une API permettant à un logiciel tiers de récupérer les données
associées à un utilisateur; cet accès peut aussi bien être initié par
l'application tierce (mode pull) ou par w.c.s., à différents moments (création
de l'utilisateur, modification, etc.).
</p>

<section id="pull">
  <title>Mode pull</title>

  <section>
    <title>Profil</title>
<p>
Les informations associées à un utilisateur sont accessibles à l'URL
<code>/user</code>, elles reprennent son nom (<code>user_display_name</code>),
son adresse électronique (<code>user_email</code>) ainsi que ses éventuelles
autorisations d'accès au backoffice (<code>user_backoffice_access</code>) ou
à l'interface d'administration (<code>user_admin_access</code>).
</p>

<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" https://www.example.net/user</input>
<output>{
  "user_display_name": "Fred",
  "user_email": "fred@example.net",
  "user_backoffice_access": true,
  "user_admin_access": false
}
</output></screen>

</section>

  <section id="forms">
    <title>Formulaires</title>

    <p>
    La liste des formulaires transmis par un utilisateur est accessible à l'URL
    <code>/myspace/forms</code>, elle reprend un ensemble minimal
    d'informations concernant chacun de ceux-ci.
    </p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" https://www.example.net/myspace/forms</input>
<output>[
    {
        "category_id": "1",
        "category_name": "Divers",
        "datetime": "2014-03-28 15:36:52",
        "form_name": "Demande d'inscription",
        "form_number": "123",
        "form_number_raw": "123",
        "form_receipt_date": "28/03/2014",
        "form_receipt_time": "15:36",
        "form_status": "Nouveau",
        "form_status_is_endpoint": false,
        "form_uri": "demande-d-inscription/123/",
        "form_url": "http://www.example.net/demande-d-inscription/123/",
        "form_url_backoffice": "http://www.example.net/backoffice/demande-d-inscription/123/",
        "name": "Demande d'inscription",
        "status": "Nouveau",
        "title": "Demande d'inscription #123 (Nouveau)",
        "url": "http://www.example.net/demande-d-inscription/123/",
    },
    {
        "category_id": "2",
        "category_name": "Prise de rendez-vous",
        "datetime": "2014-03-17 10:39:52",
        "form_name": "Rendez-vous avec le service B",
        "form_number": "456",
        "form_number_raw": "456",
        "form_receipt_date": "17/03/2014",
        "form_receipt_time": "10:39",
        "form_status": "En cours",
        "form_status_is_endpoint": false,
        "form_uri": "rendez-vous-service-b/456/",
        "form_url": "http://www.example.net/rendez-vous-service-b/456/",
        "form_url_backoffice": "http://www.example.net/backoffice/rendez-vous-service-b/456/",
        "name": "Rendez-vous avec le service B"",
        "status": "Nouveau",
        "title": "Rendez-vous avec le service B #456 (En cours)",
        "url": "http://www.example.net/rendez-vous-service-b/456/",
    },
    {
        "category_id": "3",
        "category_name": "Modification de vos coordonn\u00e9es",
        "datetime": "2014-03-17 10:42:17",
        "form_name": "Changement d'adresse",
        "form_number": "424",
        "form_number_raw": "424",
        "form_receipt_date": "17/03/2014",
        "form_receipt_time": "10:42",
        "form_status": "Traitement de la demande termin\u00e9",
        "form_status_is_endpoint": true,
        "form_uri": "changement-d-adresse/424/",
        "form_url": "http://www.example.net/changement-d-adresse/424/",
        "form_url_backoffice": "http://www.example.net/backoffice/changement-d-adresse/424/",
        "name": "Changement d'adresse",
        "status": "Traitement de la demande termin\u00e9",
        "title": "Changement d'adresse #424 (Traitement de la demande termin\u00e9)",
        "url": "http://www.example.net/changement-d-adresse/424/",
    }
]</output></screen>

  </section>
  <section>
    <title>Brouillons</title>

    <p>
    La liste des brouillons de l'utilisateur est accessible à l'adresse
    <code>/myspace/drafts</code>.
    </p>

<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" https://www.example.net/myspace/drafts</input>
<output>[
    {
        "datetime": "2014-07-21 10:15:21",
        "name": "Demande de relecture",
        "title": "Demande de relecture, brouillon enregistré le 21/07/2014 10:15",
        "url": "http://www.example.net/demande-de-relecture/164"
    }
]</output></screen>

  </section>

</section>

</page>
