Module: Siilar::Client::Tracks

Included in:
TracksService
Defined in:
lib/siilar/client/tracks.rb

Instance Method Summary collapse

Instance Method Details

#create(attributes = {}) ⇒ Object

Creates a track.



36
37
38
39
40
41
# File 'lib/siilar/client/tracks.rb', line 36

def create(attributes = {})
  Extra.validate_mandatory_attributes(attributes, [:title, :reference])
  response = client.post('2.0/tracks', attributes)

  Struct::Track.new(response)
end

#delete(track) ⇒ Object

Deletes a track.



93
94
95
# File 'lib/siilar/client/tracks.rb', line 93

def delete(track)
  client.delete("2.0/tracks/#{track}")
end

#from_reference(reference) ⇒ Object

Gets a track from its internal reference.



27
28
29
30
31
# File 'lib/siilar/client/tracks.rb', line 27

def from_reference(reference)
  response = client.get("2.0/tracks/reference/#{reference}")

  Struct::Track.new(response)
end

#tags(track) ⇒ Object

Gets a track’s tags.



101
102
103
104
105
# File 'lib/siilar/client/tracks.rb', line 101

def tags(track)
  response = client.get("2.0/tracks/#{track}/tags")

  response.map { |tag| Struct::Tag.new(tag) }
end

#tags_from_reference(reference) ⇒ Object

Gets a track’s tags from its internal reference.



111
112
113
114
115
# File 'lib/siilar/client/tracks.rb', line 111

def tags_from_reference(reference)
  response = client.get("2.0/tracks/reference/#{reference}/tags")

  response.map { |tag| Struct::Tag.new(tag) }
end

#track(track) ⇒ Object

Gets a track.



18
19
20
21
22
# File 'lib/siilar/client/tracks.rb', line 18

def track(track)
  response = client.get("2.0/tracks/#{track}")

  Struct::Track.new(response)
end

#tracks(query = {}) ⇒ Object

List tracks.



8
9
10
11
12
13
# File 'lib/siilar/client/tracks.rb', line 8

def tracks(query = {})
  options = { query: query }
  response = client.get("2.0/tracks", options)

  response['data'].map { |track| Struct::Track.new(track) }
end

#update(track, attributes = {}) ⇒ Object

Updates a track.



61
62
63
64
65
# File 'lib/siilar/client/tracks.rb', line 61

def update(track, attributes = {})
  response = client.patch("2.0/tracks/#{track}", attributes)

  Struct::Track.new(response)
end

#update_from_reference(reference, attributes = {}) ⇒ Object

Updates a track from its reference.



70
71
72
73
74
# File 'lib/siilar/client/tracks.rb', line 70

def update_from_reference(reference, attributes = {})
  response = client.patch("2.0/tracks/reference/#{reference}", attributes)

  Struct::Track.new(response)
end