Skip to content

Commit 4d002f0

Browse files
committed
feat(api): expose affiliate_utm to chat bot
1 parent e4a0820 commit 4d002f0

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed

tests/test_views.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,8 @@ def test_get_active_channels(client, mocker, requests_mock):
371371
assert response.json() == [
372372
{
373373
"channel_login": "foo_bar",
374-
"deck_url": deck_url
374+
"deck_url": deck_url,
375+
"affiliate_utm": None,
375376
}
376377
]
377378

@@ -440,7 +441,8 @@ def test_get_active_channels_with_cached_deck(client, mocker, requests_mock):
440441
assert response.json() == [
441442
{
442443
"channel_login": "foo_bar",
443-
"deck_url": deck_url
444+
"deck_url": deck_url,
445+
"affiliate_utm": None,
444446
}
445447
]
446448
mock_get_shortid_from_deck_list.assert_not_called()
@@ -493,7 +495,8 @@ def test_get_active_channels_for_bgs_game(client, mocker, requests_mock):
493495
assert response.json() == [
494496
{
495497
"channel_login": "foo_bar",
496-
"deck_url": None
498+
"deck_url": None,
499+
"affiliate_utm": None,
497500
}
498501
]
499502

twitch_hdt_ebs/serializers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class ConfigSerializer(serializers.Serializer):
4242
max_value=50,
4343
)
4444
promote_on_hsreplaynet = serializers.BooleanField(default=True)
45+
affiliate_utm = serializers.CharField(required=False)
4546

4647
def validate_hidden(self, value):
4748
if value == "":

twitch_hdt_ebs/views.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,14 +151,14 @@ def post(self, request, format=None) -> Response:
151151
serializer = self.serializer_class(data=request.data)
152152
serializer.is_valid(raise_exception=True)
153153

154+
config = ConfigSerializer(instance=request.user.settings.get("twitch_ebs", {}))
155+
154156
data = serializer.validated_data["data"]
155157
if serializer.validated_data["type"] == "game_start":
156-
self.cache_deck_data(data, serializer.validated_data["version"])
158+
self.cache_deck_data(data, serializer.validated_data["version"], config)
157159
else:
158160
self.heartbeat_deck_data()
159161

160-
config = ConfigSerializer(instance=request.user.settings.get("twitch_ebs", {}))
161-
162162
pubsub_data = {
163163
"type": serializer.validated_data["type"],
164164
"data": serializer.validated_data["data"],
@@ -185,7 +185,7 @@ def post(self, request, format=None) -> Response:
185185
}
186186
)
187187

188-
def cache_deck_data(self, data, version: int) -> bool:
188+
def cache_deck_data(self, data, version: int, config: dict) -> bool:
189189
if version < 3:
190190
# Discard old HDT versions
191191
return False
@@ -213,6 +213,7 @@ def cache_deck_data(self, data, version: int) -> bool:
213213
"legend_rank": data.get("legend_rank", 0),
214214
"game_type": data.get("game_type", 0),
215215
"twitch_user_id": self.request.twitch_user_id,
216+
"affiliate_utm": config["affiliate_utm"],
216217
}, timeout=120)
217218

218219
return True
@@ -443,7 +444,8 @@ def get(self, request):
443444

444445
data.append({
445446
"channel_login": channel_login,
446-
"deck_url": deck_url
447+
"deck_url": deck_url,
448+
"affiliate_utm": details.get("affiliate_utm")
447449
})
448450

449451
return Response(status=200, data=data)

0 commit comments

Comments
 (0)