Skip to content

Commit

Permalink
add endpoint to get webchat allowed domains
Browse files Browse the repository at this point in the history
  • Loading branch information
rasoro committed Jan 20, 2025
1 parent 53b7db3 commit 5430b39
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 1 deletion.
42 changes: 42 additions & 0 deletions temba/api/v2/internals/channels/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,45 @@ def test_get_channel_projects(self):
self.assertEqual(result_wac.get("waba"), str(channel_wac.config.get("wa_waba_id")))
self.assertEqual(result_wac.get("phone_number"), str(channel_wac.config.get("wa_number")))
self.assertEqual(result_wac.get("project_uuid"), str(project.project_uuid))


class ChannelAllowedDomainsViewTest(TembaTest):
def test_request_without_channel_uuid(self):
url = "/api/v2/internals/channel_allowed_domains"
response = self.client.get(url)

self.assertEqual(response.status_code, 400)

def test_request_with_channel_uuid(self):
wchan = self.create_channel(
"WWC", "WEBCHAT TEST CHANNEL", "wwctest", config={"allowed_domains": ["dash.weni.ai", "flows.weni.ai"]}
)

url = f"/api/v2/internals/channel_allowed_domains?channel={wchan.uuid}"

response = self.client.get(url)

data = response.json()

self.assertEqual(len(data), 2)
self.assertEqual(data[0], "dash.weni.ai")

def test_request_with_channel_uuid_with_no_allowed_domains(self):
wchan = self.create_channel(
"WWC",
"WEBCHAT TEST CHANNEL2",
"wwctest2",
)

url = f"/api/v2/internals/channel_allowed_domains?channel={wchan.uuid}"

response = self.client.get(url)

data = response.json()

self.assertEqual(len(data), 0)

def test_request_with_channel_uuid_notfound(self):
url = f"/api/v2/internals/channel_allowed_domains?channel=2337712f-dcbc-48f3-9ae7-7f832445f6c9"
response = self.client.get(url)
self.assertEqual(response.status_code, 404)
6 changes: 5 additions & 1 deletion temba/api/v2/internals/channels/urls.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
from django.urls import path

from .views import ChannelProjectView
from .views import ChannelAllowedDomainsView, ChannelProjectView

urlpatterns = [path("channel_projects", ChannelProjectView.as_view(), name="channel_projects")]

urlpatterns.append(
path("channel_allowed_domains", ChannelAllowedDomainsView.as_view(), name="channel_allowed_domains")
)
20 changes: 20 additions & 0 deletions temba/api/v2/internals/channels/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,23 @@ def post(self, request: Request):
response["results"].append(channel_data)

return Response(response)


class ChannelAllowedDomainsView(APIViewMixin, APIView):
def get(self, request: Request):
params = request.query_params
channelUUID = params.get("channel")

if channelUUID is None:
return Response(status=400)
try:
channel = Channel.objects.get(uuid=channelUUID)
except Channel.DoesNotExist:
return Response(status=404)

response = []
allowedDomains = channel.config.get("allowed_domains")
if allowedDomains is not None and len(allowedDomains) > 0:
response = allowedDomains

return Response(response)

0 comments on commit 5430b39

Please sign in to comment.