From 41b682668b2d5be6e0049e935f8c8c46503f5fa0 Mon Sep 17 00:00:00 2001 From: Kieran Eglin Date: Wed, 5 Jun 2024 08:40:54 -0700 Subject: [PATCH] Refactored the youtube api module --- lib/pinchflat/fast_indexing/youtube_api.ex | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/pinchflat/fast_indexing/youtube_api.ex b/lib/pinchflat/fast_indexing/youtube_api.ex index 03796f1..6181845 100644 --- a/lib/pinchflat/fast_indexing/youtube_api.ex +++ b/lib/pinchflat/fast_indexing/youtube_api.ex @@ -48,10 +48,10 @@ defmodule Pinchflat.FastIndexing.YoutubeApi do defp do_api_request(playlist_id) do Logger.debug("Fetching recent media IDs from YouTube API for playlist: #{playlist_id}") - api_base = "https://youtube.googleapis.com/youtube/v3/playlistItems" - request_url = "#{api_base}?part=contentDetails&maxResults=50&playlistId=#{playlist_id}&key=#{api_key()}" - - case http_client().get(request_url, accept: "application/json") do + playlist_id + |> construct_api_endpoint() + |> http_client().get(accept: "application/json") + |> case do {:ok, response} -> Phoenix.json_library().decode(response) @@ -78,6 +78,14 @@ defmodule Pinchflat.FastIndexing.YoutubeApi do Settings.get!(:youtube_api_key) end + defp api_base do + "https://youtube.googleapis.com/youtube/v3/playlistItems" + end + + defp construct_api_endpoint(playlist_id) do + "#{api_base()}?part=contentDetails&maxResults=50&playlistId=#{playlist_id}&key=#{api_key()}" + end + defp http_client do Application.get_env(:pinchflat, :http_client, Pinchflat.HTTP.HTTPClient) end