API Utilisateurs

Cet objet représente les utilisateurs du site Le Temps.

Endpoints disponibles

Recherche d’utilisateurs
Détail d’un utilisateur
Créer un utilisateur
Modifier un utilisateur

Recherche d’utilisateurs

URL : https://www.letemps.ch/api/users
Type d’appel : GET

ParamètreTypeObligatoireCommentaireExemple
emailstringNonjeandupont@gmail.com
namestringNon“nom prenom” en Base 64SmVhbiBEdXBvbnQ=
phone_numberstringNonavec ou sans le “+” initial+41225391075
erp_idstringNonC0123456789
Exemple d'appel
https://www.letemps.ch/api/users?email=jeandupont@gmail.com
⚠️
  1. La recherche doit contenir l’un au moins de ces paramètres, sinon elle renverra un message d’erreur
  2. Le critères de recherche sont cumulables, si vous précisez un nom ET un numéro de téléphone la recherche filtrera sur ces deux critères.

L’appel renvoie un statut 200 à partir du moment où elle s’effectue correctement, même s’il ne trouve pas de résultats. Il renvoie un statut 400 si aucun paramètre de recherche valable n’a été trouvé.
Si la requête est valable il renvoie également un tableau users contenant les objets trouvés, sinon il renvoie un code d’erreur.

Réponse correcte
{
    "users": [
        {
            "id": 123456,
            "erp_id": "C123456789",
            "last_name": "Dupont",
            "first_name": "Jean",
            "business_name": null,
            "email": "jean.dupont@gmail.com",
            "home_phone": "+41225391075",
            "mobile_phone": "+41225391076",
            "gender": "male|female|other_gender",
            "addresses": {
                "shipping": {
                    "recipient_name": "Jean Dupont",
                    "is_po_box": false,
                    "house_number": "2",
                    "address_line1": "Avenue du Bouchet",
                    "address_line2": "",
                    "zip_code": "1209",
                    "city": "Genève",
                    "po_box_code": "",
                    "po_box_zipcode": "",
                    "po_box_city": "",
                    "country": "CH"
                },
                "billing": {
                    "recipient_name": "Jean Dupont",
                    "is_po_box": false,
                    "house_number": "2",
                    "address_line1": "Avenue du Bouchet",
                    "address_line2": "",
                    "zip_code": "1209",
                    "city": "Genève",
                    "po_box_code": "",
                    "po_box_zipcode": "",
                    "po_box_city": "",
                    "country": "CH"
                },
                "weekend": {
                    "recipient_name": "Jean Dupont",
                    "is_po_box": false,
                    "house_number": "15",
                    "address_line1": "Avenue du Week-end",
                    "address_line2": "",
                    "zip_code": "1209",
                    "city": "Genève",
                    "po_box_code": "",
                    "po_box_zipcode": "",
                    "po_box_city": "",
                    "country": "CH"
                },
                "future_shipping": {
                    "recipient_name": "Jean Dupont",
                    "is_po_box": false,
                    "house_number": "33",
                    "address_line1": "Avenue du Déménagement",
                    "address_line2": "",
                    "zip_code": "1209",
                    "city": "Genève",
                    "po_box_code": "",
                    "po_box_zipcode": "",
                    "po_box_city": "",
                    "country": "CH",
                    "start_on": "2024-09-30"
                },
                "holidays": [
                    {
                        "recipient_name": "Jean Dupont",
                        "is_po_box": false,
                        "house_number": "1",
                        "address_line1": "Rue des vacances",
                        "address_line2": "",
                        "zip_code": "1209",
                        "city": "Génève",
                        "po_box_code": "",
                        "po_box_zipcode": "",
                        "po_box_city": "",
                        "country": "FR",
                        "start_on": "2024-12-01",
                        "end_on": "2024-12-10"
                    },
                    {
                        "recipient_name": "Jean Dupont",
                        "is_po_box": false,
                        "house_number": "1",
                        "address_line1": "Rue des vacances",
                        "address_line2": "",
                        "zip_code": "1209",
                        "city": "Génève",
                        "po_box_code": "",
                        "po_box_zipcode": "",
                        "po_box_city": "",
                        "country": "FR",
                        "start_on": "2024-12-20",
                        "end_on": "2024-12-25"
                    }
                ]
            },
            "current_subscription_id": 654321
        },
        {...}
    ]
}

ou

Réponse erronnée
{
    "code": "no_param"
}

Détail d’un utilisateur

URL : https://www.letemps.ch/api/users/:id
Type d’appel : GET

ParamètreTypeObligatoireExemple
id (dans l’url directement)integerOui123456
Exemple d'appel
https://www.letemps.ch/api/users/123456

L’appel renvoie un statut 200 si l’utilisateur a bien été trouvé, ou un statut 404 en cas d’échec.
Si l’utilisateur a été trouvé il renvoie également un objet user, sinon il renvoie un code d’erreur.

Réponse correcte
{
    "user": {
        "id": 123456,
        "erp_id": "C123456789",
        "last_name": "Dupont",
        "first_name": "Jean",
        "business_name": null,
        "email": "jean.dupont@gmail.com",
        "home_phone": "+41225391075",
        "mobile_phone": "+41225391076",
        "gender": "male|female|other_gender",
        "addresses": {
            "shipping": {
                "recipient_name": "Jean Dupont",
                "is_po_box": false,
                "house_number": "2",
                "address_line1": "Avenue du Bouchet",
                "address_line2": "",
                "zip_code": "1209",
                "city": "Genève",
                "po_box_code": "",
                "po_box_zipcode": "",
                "po_box_city": "",
                "country": "CH"
            },
            "billing": {
                "recipient_name": "Jean Dupont",
                "is_po_box": false,
                "house_number": "2",
                "address_line1": "Avenue du Bouchet",
                "address_line2": "",
                "zip_code": "1209",
                "city": "Genève",
                "po_box_code": "",
                "po_box_zipcode": "",
                "po_box_city": "",
                "country": "CH"
            },
            "weekend": {
                "recipient_name": "Jean Dupont",
                "is_po_box": false,
                "house_number": "15",
                "address_line1": "Avenue du Week-end",
                "address_line2": "",
                "zip_code": "1209",
                "city": "Genève",
                "po_box_code": "",
                "po_box_zipcode": "",
                "po_box_city": "",
                "country": "CH"
            },
            "future_shipping": {
                "recipient_name": "Jean Dupont",
                "is_po_box": false,
                "house_number": "33",
                "address_line1": "Avenue du Déménagement",
                "address_line2": "",
                "zip_code": "1209",
                "city": "Genève",
                "po_box_code": "",
                "po_box_zipcode": "",
                "po_box_city": "",
                "country": "CH",
                "start_on": "2024-09-30"
            },
            "holidays": [
                {
                    "recipient_name": "Jean Dupont",
                    "is_po_box": false,
                    "house_number": "1",
                    "address_line1": "Rue des vacances",
                    "address_line2": "",
                    "zip_code": "1209",
                    "city": "Génève",
                    "po_box_code": "",
                    "po_box_zipcode": "",
                    "po_box_city": "",
                    "country": "FR",
                    "start_on": "2024-12-01",
                    "end_on": "2024-12-10"
                },
                {
                    "recipient_name": "Jean Dupont",
                    "is_po_box": false,
                    "house_number": "1",
                    "address_line1": "Rue des vacances",
                    "address_line2": "",
                    "zip_code": "1209",
                    "city": "Génève",
                    "po_box_code": "",
                    "po_box_zipcode": "",
                    "po_box_city": "",
                    "country": "FR",
                    "start_on": "2024-12-20",
                    "end_on": "2024-12-25"
                }
            ]
        },
        "current_subscription_id": 654321
    }
}

ou

Réponse erronnée
{
    "code": "not_found"
}

Créer un utilisateur

URL : https://www.letemps.ch/api/users
Type d’appel : POST

L’appel doit se faire en POST, et contenir un objet json user.
Cet objet doit/peut contenir les propriétés suivantes :

PropriétéTypeObligatoireExempleCommentaire
last_namestringOuiDupont
first_namestringOuiJean
business_namestringNonLe Temps
emailstringOuinew@user.com
home_phonestringNon+41225391075Au format international
mobile_phonestringNon+41225391076Au format international
genderstringNonmaleValeur au choix parmi male / female / other_gender
birthdaystringNon01/01/2000
Exemple d'appel : https://www.letemps.ch/api/users
{
    "user": {
        "last_name": "Dupont",
        "first_name": "Jean",
        "business_name": "Le Temps",
        "email": "jean.dupont@gmail.com",
        "home_phone": "+41225391075",
        "mobile_phone": "+41225391076",
        "gender": "male",
        "birthday": "01/01/2000"
    }
}

L’appel renvoie un statut 200 si l’utilisateur a bien été créé. Autrement il renvoie un statut d’erreur en cas d’échec.
Si l’utilisateur a bien été créé il renvoie également un objet user, sinon il renvoie un code d’erreur et éventuellement des précisions sur l’erreur.

Réponse correcte
{
    "user": {
        "id": 123456,
        "erp_id": null,
        "last_name": "Dupont",
        "first_name": "Jean",
        "business_name": "Le Temps",
        "email": "jean.dupont@gmail.com",
        "home_phone": "+41225391075",
        "mobile_phone": "+41225391076",
        "gender": "male",
        "addresses": {
            "shipping": null,
            "billing": null,
            "weekend": null,
            "future_shipping": null,
            "holidays": []
        },
        "current_subscription_id": null
    }
}

En cas de problème une de ces erreurs sera indiquée :

Code HTTPCode erreurExplicationCommentaire
400invalid_dataLes données envoyées sont incorrectes (mal formatées ?)
422no_email_providedLe nœud user fourni ne contient pas d’email valide
409email_already_existingIl existe déjà un compte avec l’email fourni
422not_processableUne erreur bloque la créationun second nœud details (Array) donnera des précisions sur la raison de l’erreur

Par exemple :

Exemple de réponse incorrecte
{
    "code": "not_processable",
    "details": [
        "E-mail n'est pas valide",
        "Prénom est trop court (au moins 2 caractères)",
        "E-mail n'est pas un e-mail."
    ]
}

Modifier un utilisateur

URL : https://www.letemps.ch/api/users/:id
Type d’appel : PATCH

L’appel doit se faire en PATCH, et contenir un objet json user.
Cet objet peut contenir les propriétés suivantes :

PropriétéTypeObligatoireExempleCommentaire
last_namestringNonDupont
first_namestringNonJean
business_namestringNonLe Temps
emailstringOuinew@user.com
home_phonestringNon+41225391075Au format international
mobile_phonestringNon+41225391076Au format international
genderstringNonmaleValeur au choix parmi male / female / other_gender
birthdaystringNon01/01/2000

Seul l’email est obligatoire. Les propriétés vides sont ignorées.

Exemple d'appel : https://www.letemps.ch/api/users/123456
{
    "user": {
        "last_name": "Dupont",
        "first_name": "Jean",
        "business_name": "Le Temps",
        "email": "jean.dupont@gmail.com",
        "home_phone": "+41225391075",
        "mobile_phone": "+41225391075",
        "gender": "male",
        "birthday": "01/01/2000"
    }
}

L’appel renvoie un statut 200 si l’utilisateur a bien été modifié. Autrement il renvoie un statut d’erreur en cas d’échec.
Si l’utilisateur a bien été modifié il renvoie également un objet user avec toutes les données à jour, sinon il renvoie un code d’erreur et éventuellement des précisions sur l’erreur.

Réponse correcte
{
    "user": {
        "id": 123456,
        "erp_id": null,
        "last_name": "Dupont",
        "first_name": "Jean",
        "business_name": "Le Temps",
        "email": "jean.dupont@gmail.com",
        "home_phone": "+41225391075",
        "mobile_phone": "+41225391076",
        "gender": "male",
        "addresses": {
            "shipping": null,
            "billing": null,
            "weekend": null,
            "future_shipping": null,
            "holidays": []
        },
        "current_subscription_id": null
    }
}

En cas de problème une de ces erreurs sera indiquée :

Code HTTPCode erreurExplicationCommentaire
400invalid_dataLes données envoyées sont incorrectes (mal formatées ?)
422no_email_providedLe nœud user fourni ne contient pas d’email valide
404not_foundL’id utilisateur fourni n’a pas été trouvé
409email_already_existingIl existe déjà un compte avec l’email fourni
422not_processableUne erreur bloque la modificationun second nœud details (Array) donnera des précisions sur la raison de l’erreur

Par exemple :

Exemple de réponse incorrecte
{
    "code": "not_processable",
    "details": [
        "E-mail n'est pas valide",
        "Prénom est trop court (au moins 2 caractères)",
        "E-mail n'est pas un e-mail."
    ]
}