From 25ec7976193adfc27b1946e01073ffca247b1189 Mon Sep 17 00:00:00 2001 From: alanraul Date: Thu, 31 Jan 2019 23:07:12 -0500 Subject: [PATCH] =?UTF-8?q?Correcci=C3=B3n=20para=20evitar=20error=20al=20?= =?UTF-8?q?generar=20body=20de=20la=20petici=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/flowex/service/intents.ex | 41 +++++++++++++++++++++++----------- lib/flowex/service/sessions.ex | 14 +++++------- 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/lib/flowex/service/intents.ex b/lib/flowex/service/intents.ex index 053e879..1334462 100644 --- a/lib/flowex/service/intents.ex +++ b/lib/flowex/service/intents.ex @@ -59,19 +59,13 @@ defmodule Flowex.Service.Intents do def add_training_phrase(project, id, text, language \\ "es") do url = "intents/#{id}?languageCode=#{language}&intentView=INTENT_VIEW_FULL" - {:ok, intent} = get(project, id, language, "INTENT_VIEW_FULL") - - intent = - [%{ - "name" => UUID.uuid4(), - "parts" => [%{"text" => text}], - "type" => "EXAMPLE" - }] - |> Enum.concat(intent["trainingPhrases"]) + with {:ok, intent} <- get(project, id, language, "INTENT_VIEW_FULL") do + intent + |> Map.get("trainingPhrases") + |> _set_training_phrase(text) |> (&Map.put(intent, "trainingPhrases", &1)).() - |> Poison.encode! - - Flowex.request(project, :patch, url, intent) + |> (&Flowex.request(project, :patch, url, &1)).() + end end @doc """ @@ -81,6 +75,27 @@ defmodule Flowex.Service.Intents do def update(project, id, intent, language \\ "es") do url = "intents/#{id}?languageCode=#{language}&intentView=INTENT_VIEW_FULL" - Flowex.request(project, :patch, url, Poison.encode!(intent)) + Flowex.request(project, :patch, url, intent) + end + + # --------------------------------------------------------------------------- + # Define una frase de entrenamiento. + # --------------------------------------------------------------------------- + @spec _set_training_phrase(nil | list, String.t) :: list + defp _set_training_phrase(nil, text) do + [%{ + "name" => UUID.uuid4(), + "parts" => [%{"text" => text}], + "type" => "EXAMPLE" + }] + end + defp _set_training_phrase(training_phrases, text) do + [ + %{ + "name" => UUID.uuid4(), + "parts" => [%{"text" => text}], + "type" => "EXAMPLE" + } || training_phrases + ] end end diff --git a/lib/flowex/service/sessions.ex b/lib/flowex/service/sessions.ex index 180b80f..13a66b2 100644 --- a/lib/flowex/service/sessions.ex +++ b/lib/flowex/service/sessions.ex @@ -11,16 +11,14 @@ defmodule Flowex.Service.Sessions do """ @spec detect_intent(String.t, String.t, String.t, String.t) :: tuple def detect_intent(project, text, session_id, language \\ "es") do - body = - %{ - queryInput: %{ - text: %{ - text: text, - languageCode: language - } + body = %{ + queryInput: %{ + text: %{ + text: text, + languageCode: language } } - |> Poison.encode! + } Flowex.request(project, :post, "sessions/#{session_id}:detectIntent", body) end