Jump to content
frelep

Pourquoi l'API autorise à créer 2 clients avec la même adresse mail ?

Recommended Posts

Bonjour toute le monde !

 

J'ai une question fonctionnelle, via la GUI il est impossible de créer 2 clients avec la même adresse mail. Pourtant c'est tout à fait possible via l'API, en effet j'ai testé 3 fois de suite l'envoi d'une demande de création et les clients sont bien créés. Pourquoi l'API ne renvoie pas d'erreur disant que l'email est déjà utilisé ? Pourquoi avoir fait ce choix ?

Sans cette erreur, cela signifie qu'il faut procéder en 2 étapes :

- lancer une première requête pour vérifier que l'email n'existe pas déjà

- s'il n'existe pas, lancer une seconde requête pour créer le client

En espérant bien évidemment que le client ne soit pas créé entre temps via un autre système.....

 

Merci d'avance pour vos éclaircissements.

 

P.S. : Je suis avec la version Prestashop 1.5.6.1

Share this post


Link to post
Share on other sites

J'allais te dire qu'il te manque un unique index sur customer email, mais je viens de constater que celui-ci n'est plus unique depuis la 1.4.0.6 !?!

 

1.4.0.6.sql

ALTER TABLE `PREFIX_customer` DROP INDEX `customer_email`;
ALTER TABLE `PREFIX_customer` ADD INDEX  `customer_email` (`email`);

Share this post


Link to post
Share on other sites

Bonjour,

Je ne suis pas entré dans le code de Prestashop pour analyser le fonctionnement, mais cela veut dire que l'API attaque directement la BD sans couche de contrôle ?

Ça me paraît étrange que l'API et la GUI ne fasse pas appel aux mêmes règles pour la gestion des données..... Ou peut-être y-a-t-il un intérêt ?

En rajoutant l'index unique sur l'email du client, comment va réagir l'API en cas de refus de la BD ? Est-ce que cela renverra un code d'erreur et une description de l'erreur ?

Merci par avance pour votre retour :-)

Edited by frelep (see edit history)

Share this post


Link to post
Share on other sites

Le truc ce serait surtout de savoir pourquoi ils ont droppé cet unique index... chelou à mon avis

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More