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ètre | Type | Obligatoire | Commentaire | Exemple |
---|---|---|---|---|
string | Non | jeandupont@gmail.com | ||
name | string | Non | “nom prenom” en Base 64 | SmVhbiBEdXBvbnQ= |
phone_number | string | Non | avec ou sans le “+” initial | +41225391075 |
erp_id | string | Non | C0123456789 |
https://www.letemps.ch/api/users?email=jeandupont@gmail.com
- La recherche doit contenir l’un au moins de ces paramètres, sinon elle renverra un message d’erreur
- 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.
{
"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
{
"code": "no_param"
}
Détail d’un utilisateur
URL : https://www.letemps.ch/api/users/:id
Type d’appel : GET
Paramètre | Type | Obligatoire | Exemple |
---|---|---|---|
id (dans l’url directement) | integer | Oui | 123456 |
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.
{
"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
{
"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é | Type | Obligatoire | Exemple | Commentaire |
---|---|---|---|---|
last_name | string | Oui | Dupont | |
first_name | string | Oui | Jean | |
business_name | string | Non | Le Temps | |
string | Oui | new@user.com | ||
home_phone | string | Non | +41225391075 | Au format international |
mobile_phone | string | Non | +41225391076 | Au format international |
gender | string | Non | male | Valeur au choix parmi male / female / other_gender |
birthday | string | Non | 01/01/2000 |
{
"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.
{
"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 HTTP | Code erreur | Explication | Commentaire |
---|---|---|---|
400 | invalid_data | Les données envoyées sont incorrectes (mal formatées ?) | |
422 | no_email_provided | Le nœud user fourni ne contient pas d’email valide | |
409 | email_already_existing | Il existe déjà un compte avec l’email fourni | |
422 | not_processable | Une erreur bloque la création | un second nœud details (Array) donnera des précisions sur la raison de l’erreur |
Par exemple :
{
"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é | Type | Obligatoire | Exemple | Commentaire |
---|---|---|---|---|
last_name | string | Non | Dupont | |
first_name | string | Non | Jean | |
business_name | string | Non | Le Temps | |
string | Oui | new@user.com | ||
home_phone | string | Non | +41225391075 | Au format international |
mobile_phone | string | Non | +41225391076 | Au format international |
gender | string | Non | male | Valeur au choix parmi male / female / other_gender |
birthday | string | Non | 01/01/2000 |
Seul l’email est obligatoire. Les propriétés vides sont ignorées.
{
"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.
{
"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 HTTP | Code erreur | Explication | Commentaire |
---|---|---|---|
400 | invalid_data | Les données envoyées sont incorrectes (mal formatées ?) | |
422 | no_email_provided | Le nœud user fourni ne contient pas d’email valide | |
404 | not_found | L’id utilisateur fourni n’a pas été trouvé | |
409 | email_already_existing | Il existe déjà un compte avec l’email fourni | |
422 | not_processable | Une erreur bloque la modification | un second nœud details (Array) donnera des précisions sur la raison de l’erreur |
Par exemple :
{
"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."
]
}