diff --git a/lib/ex_twilio/config.ex b/lib/ex_twilio/config.ex index aa19172..a890f42 100644 --- a/lib/ex_twilio/config.ex +++ b/lib/ex_twilio/config.ex @@ -71,7 +71,7 @@ defmodule ExTwilio.Config do def video_url, do: "https://video.twilio.com/v1" - def voice_insights_url, do: "https://insights.twilio.com/v1/Voice" + def voice_insights_url, do: "https://insights.twilio.com/v1" def preview_url, do: "https://preview.twilio.com/marketplace" diff --git a/lib/ex_twilio/resources/insights/annotation.ex b/lib/ex_twilio/resources/insights/annotation.ex new file mode 100644 index 0000000..8ac54f7 --- /dev/null +++ b/lib/ex_twilio/resources/insights/annotation.ex @@ -0,0 +1,23 @@ +defmodule ExTwilio.Insights.Annotation do + @moduledoc """ + Represents Voice Insights Annotation Resource. + + - [Twilio docs](https://www.twilio.com/docs/voice/voice-insights/api/call/call-annotation-resource) + """ + + defstruct [ + :call_sid, + :answered_by, + :connectivity_issue, + :quality_issues, + :spam, + :call_score, + :comment, + :incident + ] + + use ExTwilio.Resource, import: [:find, :create] + + def parents, do: [%ExTwilio.Parent{module: ExTwilio.Insights.Voice, key: :call_sid}] + def resource_name, do: "Annotation" +end diff --git a/lib/ex_twilio/resources/insights/voice/settings.ex b/lib/ex_twilio/resources/insights/settings.ex similarity index 80% rename from lib/ex_twilio/resources/insights/voice/settings.ex rename to lib/ex_twilio/resources/insights/settings.ex index d9b7cda..bfbfd15 100644 --- a/lib/ex_twilio/resources/insights/voice/settings.ex +++ b/lib/ex_twilio/resources/insights/settings.ex @@ -1,4 +1,4 @@ -defmodule ExTwilio.Insights.Voice.Settings do +defmodule ExTwilio.Insights.Settings do @moduledoc """ Represents Voice Insights Settings Resource. @@ -14,4 +14,6 @@ defmodule ExTwilio.Insights.Voice.Settings do ] use ExTwilio.Resource, import: [:find, :create] + + def resource_name, do: "Voice/Settings" end diff --git a/lib/ex_twilio/resources/insights/voice.ex b/lib/ex_twilio/resources/insights/voice.ex new file mode 100644 index 0000000..6e94cc3 --- /dev/null +++ b/lib/ex_twilio/resources/insights/voice.ex @@ -0,0 +1,8 @@ +defmodule ExTwilio.Insights.Voice do + @moduledoc """ + This is module only exists to add "Voice" to url before each of the Insights urls + the Insights urls seem to break the pattern of the rest of the Twilio base urls + """ + + def resource_name, do: "Voice" +end diff --git a/lib/ex_twilio/url_generator.ex b/lib/ex_twilio/url_generator.ex index 51c04a1..660adc3 100644 --- a/lib/ex_twilio/url_generator.ex +++ b/lib/ex_twilio/url_generator.ex @@ -89,7 +89,7 @@ defmodule ExTwilio.UrlGenerator do {url, options} end - defp construct_url(["ExTwilio", "Insights", "Voice" | _], module, id, options) do + defp construct_url(["ExTwilio", "Insights" | _], module, id, options) do url = add_segments(Config.voice_insights_url(), module, id, options) {url, options} end