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

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

        event = <<-EVENT
          #{event_id} = {
            "data":
            {
              "release_artist_id": #{event[:release_artist_id]},
              "upc": #{event[:upc]},
              "role": "#{event[:role]}",
              "release_id": #{event[:release_id]},
              "artist_name": "#{event[:artist_name]}",
              "url": None,
              "artist_info_id": None
            },
            "database":"art_relations",
            "table":"release_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
