Class: Ejaydj::Services::TrackService

Inherits:
Object
  • Object
show all
Defined in:
lib/ejaydj/services/track_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(music_client: nil, user_id: nil, playlist_id: nil) ⇒ TrackService

Returns a new instance of TrackService.



4
5
6
7
8
# File 'lib/ejaydj/services/track_service.rb', line 4

def initialize(music_client: nil, user_id: nil, playlist_id: nil)
  @music_client = music_client
  @user_id      = user_id
  @playlist_id  = playlist_id
end

Instance Method Details

#allObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/ejaydj/services/track_service.rb', line 10

def all
  response_items = @music_client.playlist_tracks(user_id: @user_id, playlist_id: @playlist_id)

  response_items.map do |item|
    Track.new(
      id:            item["track"]["id"],
      name:          item["track"]["name"],
      album:         item["track"]["album"]["name"],
      artist:        item["track"]["artists"][0]["name"],
      duration_ms:   item["track"]["duration_ms"],
      url:           item["track"]["external_urls"]["spotify"]
    )
  end
end