module Formatters
  module Tracks
    def self.compile_events(data)
      events = []
      data.each_with_index do | raw_event, i |
        events << Formatters::Tracks.compile_event(raw_event, i)
      end
      events
    end

    def self.compile_event(event, count)
        event_id = "track_artist_event_#{count}"

        event = <<-EVENT
          #{event_id} = {
            "data":
            {
                "artist_info_id": None,
                "id": #{event[:id]},
                "name": "#{event[:name]}",
                "track_id": #{event[:track_id]},
                "type": "#{event[:type]}"
            },
            "database":"art_relations",
            "table":"track_artist",
            "type":"insert"
          }

          data = base64.b64encode(json.dumps(#{event_id}).encode())

          kinesis_event = {
              "Records": [
                  {
                          "kinesis":{
                              "data": data
                          }
                  }
              ]
          }

          handler(kinesis_event, None)

        EVENT

        event
    end
  end
end
