Class: PodcastApi::Client

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/podcast_api.rb

Constant Summary collapse

@@BASE_URL_PROD =
'https://listen-api.listennotes.com/api/v2'
@@BASE_URL_TEST =
'https://listen-api-test.listennotes.com/api/v2'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key: nil, user_agent: nil) ⇒ Client

Returns a new instance of Client.



19
20
21
22
23
24
25
26
# File 'lib/podcast_api.rb', line 19

def initialize(api_key: nil, user_agent: nil)
    @api_key = api_key
    @base_url = api_key ? @@BASE_URL_PROD : @@BASE_URL_TEST
    @headers = {
        'X-ListenAPI-Key' => @api_key ? @api_key : '',
        'User-Agent' => user_agent ? user_agent : "podcasts-api-ruby #{VERSION}"
    }
end

Instance Attribute Details

#base_urlObject (readonly)

Returns the value of attribute base_url.



17
18
19
# File 'lib/podcast_api.rb', line 17

def base_url
  @base_url
end

Instance Method Details

#batch_fetch_episodes(**kwargs) ⇒ Object



99
100
101
102
# File 'lib/podcast_api.rb', line 99

def batch_fetch_episodes(**kwargs)
    @headers['Content-Type'] = 'application/x-www-form-urlencoded'            
    return send_http_request('post', "#{@base_url}/episodes", {body: kwargs, headers: @headers})
end

#batch_fetch_podcasts(**kwargs) ⇒ Object



94
95
96
97
# File 'lib/podcast_api.rb', line 94

def batch_fetch_podcasts(**kwargs)
    @headers['Content-Type'] = 'application/x-www-form-urlencoded'            
    return send_http_request('post', "#{@base_url}/podcasts", {body: kwargs, headers: @headers})
end

#delete_podcast(**kwargs) ⇒ Object



153
154
155
156
# File 'lib/podcast_api.rb', line 153

def delete_podcast(**kwargs)
    id = kwargs.delete(:id)            
    return send_http_request('delete', "#{@base_url}/podcasts/#{id}", {query: kwargs, headers: @headers})
end

#fetch_audience_for_podcast(**kwargs) ⇒ Object



158
159
160
161
# File 'lib/podcast_api.rb', line 158

def fetch_audience_for_podcast(**kwargs)
    id = kwargs.delete(:id)            
    return send_http_request('get', "#{@base_url}/podcasts/#{id}/audience", {query: kwargs, headers: @headers})
end

#fetch_best_podcasts(**kwargs) ⇒ Object



80
81
82
# File 'lib/podcast_api.rb', line 80

def fetch_best_podcasts(**kwargs)
    return send_http_request('get', "#{@base_url}/best_podcasts", {query: kwargs, headers: @headers})
end

#fetch_curated_podcasts_list_by_id(**kwargs) ⇒ Object



104
105
106
107
# File 'lib/podcast_api.rb', line 104

def fetch_curated_podcasts_list_by_id(**kwargs)
    id = kwargs.delete(:id)            
    return send_http_request('get', "#{@base_url}/curated_podcasts/#{id}", {query: kwargs, headers: @headers})
end

#fetch_curated_podcasts_lists(**kwargs) ⇒ Object



109
110
111
# File 'lib/podcast_api.rb', line 109

def fetch_curated_podcasts_lists(**kwargs)
    return send_http_request('get', "#{@base_url}/curated_podcasts", {query: kwargs, headers: @headers})
end

#fetch_episode_by_id(**kwargs) ⇒ Object



89
90
91
92
# File 'lib/podcast_api.rb', line 89

def fetch_episode_by_id(**kwargs)
    id = kwargs.delete(:id)
    return send_http_request('get', "#{@base_url}/episodes/#{id}", {query: kwargs, headers: @headers})
end

#fetch_my_playlists(**kwargs) ⇒ Object



144
145
146
# File 'lib/podcast_api.rb', line 144

def fetch_my_playlists(**kwargs)
    return send_http_request('get', "#{@base_url}/playlists", {query: kwargs, headers: @headers})
end

#fetch_playlist_by_id(**kwargs) ⇒ Object



139
140
141
142
# File 'lib/podcast_api.rb', line 139

def fetch_playlist_by_id(**kwargs)
    id = kwargs.delete(:id)            
    return send_http_request('get', "#{@base_url}/playlists/#{id}", {query: kwargs, headers: @headers})
end

#fetch_podcast_by_id(**kwargs) ⇒ Object



84
85
86
87
# File 'lib/podcast_api.rb', line 84

def fetch_podcast_by_id(**kwargs)
    id = kwargs.delete(:id)
    return send_http_request('get', "#{@base_url}/podcasts/#{id}", {query: kwargs, headers: @headers})
end

#fetch_podcast_genres(**kwargs) ⇒ Object



113
114
115
# File 'lib/podcast_api.rb', line 113

def fetch_podcast_genres(**kwargs)
    return send_http_request('get', "#{@base_url}/genres", {query: kwargs, headers: @headers})
end

#fetch_podcast_languages(**kwargs) ⇒ Object



121
122
123
# File 'lib/podcast_api.rb', line 121

def fetch_podcast_languages(**kwargs)
    return send_http_request('get', "#{@base_url}/languages", {query: kwargs, headers: @headers})
end

#fetch_podcast_regions(**kwargs) ⇒ Object



117
118
119
# File 'lib/podcast_api.rb', line 117

def fetch_podcast_regions(**kwargs)
    return send_http_request('get', "#{@base_url}/regions", {query: kwargs, headers: @headers})
end

#fetch_podcasts_by_domain(**kwargs) ⇒ Object



163
164
165
166
# File 'lib/podcast_api.rb', line 163

def fetch_podcasts_by_domain(**kwargs)
    domain_name = kwargs.delete(:domain_name)            
    return send_http_request('get', "#{@base_url}/podcasts/domains/#{domain_name}", {query: kwargs, headers: @headers})
end

#fetch_recommendations_for_episode(**kwargs) ⇒ Object



134
135
136
137
# File 'lib/podcast_api.rb', line 134

def fetch_recommendations_for_episode(**kwargs)
    id = kwargs.delete(:id)            
    return send_http_request('get', "#{@base_url}/episodes/#{id}/recommendations", {query: kwargs, headers: @headers})
end

#fetch_recommendations_for_podcast(**kwargs) ⇒ Object



129
130
131
132
# File 'lib/podcast_api.rb', line 129

def fetch_recommendations_for_podcast(**kwargs)
    id = kwargs.delete(:id)            
    return send_http_request('get', "#{@base_url}/podcasts/#{id}/recommendations", {query: kwargs, headers: @headers})
end


72
73
74
# File 'lib/podcast_api.rb', line 72

def fetch_related_searches(**kwargs)
    return send_http_request('get', "#{@base_url}/related_searches", {query: kwargs, headers: @headers})
end


76
77
78
# File 'lib/podcast_api.rb', line 76

def fetch_trending_searches(**kwargs)
    return send_http_request('get', "#{@base_url}/trending_searches", {query: kwargs, headers: @headers})
end

#just_listen(**kwargs) ⇒ Object



125
126
127
# File 'lib/podcast_api.rb', line 125

def just_listen(**kwargs)
    return send_http_request('get', "#{@base_url}/just_listen", {query: kwargs, headers: @headers})
end

#search(**kwargs) ⇒ Object



56
57
58
# File 'lib/podcast_api.rb', line 56

def search(**kwargs)
    return send_http_request('get', "#{@base_url}/search", {query: kwargs, headers: @headers})
end

#search_episode_titles(**kwargs) ⇒ Object



60
61
62
# File 'lib/podcast_api.rb', line 60

def search_episode_titles(**kwargs)
    return send_http_request('get', "#{@base_url}/search_episode_titles", {query: kwargs, headers: @headers})
end

#spellcheck(**kwargs) ⇒ Object



68
69
70
# File 'lib/podcast_api.rb', line 68

def spellcheck(**kwargs)
    return send_http_request('get', "#{@base_url}/spellcheck", {query: kwargs, headers: @headers})
end

#submit_podcast(**kwargs) ⇒ Object



148
149
150
151
# File 'lib/podcast_api.rb', line 148

def submit_podcast(**kwargs)
    @headers['Content-Type'] = 'application/x-www-form-urlencoded'            
    return send_http_request('post', "#{@base_url}/podcasts/submit", {body: kwargs, headers: @headers})
end

#typeahead(**kwargs) ⇒ Object



64
65
66
# File 'lib/podcast_api.rb', line 64

def typeahead(**kwargs)
    return send_http_request('get', "#{@base_url}/typeahead", {query: kwargs, headers: @headers})
end