From f8c090bf3b5b733e75f6e1497c9320bfc226e70c Mon Sep 17 00:00:00 2001 From: Guillaume Dubost Date: Tue, 20 Oct 2015 14:53:27 +0200 Subject: [PATCH 1/2] [FEATURE#21960] Gestion multi messages Mulit message lors de la creation de la conversation --- src/ConversationManager.php | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/ConversationManager.php b/src/ConversationManager.php index a9a1f6a..160c96d 100644 --- a/src/ConversationManager.php +++ b/src/ConversationManager.php @@ -59,13 +59,9 @@ public function save(Conversation $conversation) return $this->app->abort(400, "Need content to create conversation"); } - $body["content"] = $body["messages"][0]["content"]; - $body["type"] = $body["messages"][0]["type"]; - $body["metas"] = json_encode($body["metas"]); - unset($body["messages"]); - - $request = $this->app["conversation_proxy"]->post("/conversations", [], $body); - $response = $this->fireRequest($request, $this->app["cookies.authenticator"]); + $body["metas"] = json_encode($body["metas"]); + $request = $this->app["conversation_proxy"]->post("/conversations", [], $body); + $response = $this->fireRequest($request, $this->app["cookies.authenticator"]); } else { foreach ($actions as $action) { $route = $action["route"]; From 7f418e200af5d6b54c44f2c833b93f8d3e47d9e6 Mon Sep 17 00:00:00 2001 From: Guillaume Dubost Date: Tue, 27 Oct 2015 14:36:53 +0100 Subject: [PATCH 2/2] [FEATURE#21960] Readme swag --- README.md | 60 +++++++++++++++++++++++-------------------------------- 1 file changed, 25 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 6e1dc9e..fba57ea 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ # composer-conversation-proxy-provider Permets aux differentes applications d'avoir un proxy vers conversation-api -Installation ------------- +## Installation Modifier `composer.json` : @@ -10,7 +9,7 @@ Modifier `composer.json` : { // ... "require": { - "etna/conversation-proxy-provider": "~0.1" + "etna/conversation-proxy-provider": "~1.0.x" }, "repositories": [ { @@ -21,52 +20,41 @@ Modifier `composer.json` : } ``` -Utilisation ------------ +## Utilisation -Il faut tout d'abord creer une classe pour la configuration de ce provider : -``` -class ConversationConfig implements ServiceProviderInterface -{ - private $application_env; +### Déclarer le composant - public function __construct($application_env = null) - { - if (null === $application_env) { - throw new \Exception("Application env is not set"); - } - $this->application_env = $application_env; - } +Le composant `etna/config-provider` met à disposition une classe permettant de faire utiliser ce proxy a notre application. - public function boot(Application $app) - { - return $app; - } +Lors de la configuration de l'application il faut donc utiliser la classe `ETNA\Silex\Provider\Config\ConversationProxy` : + +``` +use ETNA\Silex\Provider\Config as ETNAConf; +class EtnaConfig implements ServiceProviderInterface +{ public function register(Application $app) { - switch ($this->application_env) { - case "production": - putenv("CONVERSATION_API_URL=https://conversation-api.etna-alternance.net"); - break; - case "development": - putenv("CONVERSATION_API_URL=http://conversation-api.etna.dev"); - break; - } - - //Dans le cas ou l'on souhaite fournir son propre controlleur - $controller = new ConversationController(); - $app->register(new ConversationProxyProvider($controller)); - //Sinon - $app->register(new ConversationProxyProvider()); + ... + + //L'utilisation du controlleur custom est expliquée plus bas + $my_controller = new ConversationController(); + $app->register(new ETNAConf\ConversationProxy($my_controller)); + + ... } } ``` +### Le contenu de ce composant + +##### Le controlleur custom + Ce provider met a disposition un `DumbMethodsProxy` qui fournit toutes les routes basiques de conversations : - Likes - Message - Views + - Recherche Il est possible de creer un controlleur qui hérite de ce `DumbMethodsProxy` pour rajouter des routes custom : ``` @@ -103,6 +91,8 @@ class ConversationController extends DumbMethodsProxy } ``` +##### Les plus de ce proxy + Ce provider met a disposition : - L'objet Conversation, qui est une "entité" qui se comporte comme une entité doctrine le ferait - On peut la remplir avec un array grace a `$conversation->fromArray($array)`