Skip to content

Commit

Permalink
Mejora para listar intents
Browse files Browse the repository at this point in the history
  • Loading branch information
alanraul authored Aug 24, 2018
2 parents 0d36ae5 + d5a1b32 commit cf0d1b5
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 7 deletions.
28 changes: 24 additions & 4 deletions lib/flowex/service/intents.ex
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,31 @@ defmodule Flowex.Service.Intents do
alias Flowex

@doc """
Lista los de intents de un agente.
Lista todos los intents de un agente por pageToken.
"""
@spec list(String.t, String.t, integer, String.t | nil) :: tuple
def list(language \\ "es", view \\ "INTENT_VIEW_UNSPECIFIED", pageSize \\ 1, token \\ nil) do
url = "intents?languageCode=#{language}&intentView=#{view}&pageSize=#{pageSize}&pageToken=#{token}"
@spec list(String.t, String.t, String.t | nil, list) :: tuple
def list(language \\ "es", view \\ "INTENT_VIEW_UNSPECIFIED",
token \\ nil, acc \\ []) do
case list_by_page(language, view, 100, token) do
{:ok, %{"intents" => intents, "nextPageToken" => nextPageToken}} ->
list(language, view, nextPageToken, acc ++ intents)
{:ok, %{"intents" => intents}} ->
{:ok, acc ++ intents}
{:error, error} ->
{:error, error}
end
end

@doc """
Lista los de intents de un agente por pageToken y definiendo tamaño de pagina.
"""
@spec list_by_page(String.t, String.t, integer, String.t | nil) :: tuple
def list_by_page(language \\ "es", view \\ "INTENT_VIEW_UNSPECIFIED",
pageSize \\ 100, token \\ nil) do
url =
"intents?languageCode=#{language}&intentView=#{view}&" <>
"pageSize=#{pageSize}&pageToken=#{token}"

Flowex.request(:get, url, "")
end

Expand Down
5 changes: 2 additions & 3 deletions test/service/intents_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ defmodule Flowex.Service.IntentsTest do
"name" => "projects/lbot-170189/agent/intents/4cff39af-ba13-4a62-ba6f-8a79f4f5b324",
"priority" => 500000
}
],
"nextPageToken" => "0xFAKETOKEN_Q="
]
}

@intent %{
Expand All @@ -41,7 +40,7 @@ defmodule Flowex.Service.IntentsTest do
end]
}
]) do
assert Intents.list == {:ok, @intents}
assert Intents.list == {:ok, @intents["intents"]}
end
end

Expand Down

0 comments on commit cf0d1b5

Please sign in to comment.