require 'securerandom' require 'json' module FlydataCore module Event class FlydataEvent attr_accessor :noun attr_accessor :verb attr_accessor :data #recommended that it be a hash attr_accessor :id attr_accessor :created attr_accessor :data_entry_id attr_accessor :data_port_id # params: # data_port_id: nil, # data_entry_id: nil, # id: nil, # data: nil, # timestamp: nil def initialize (noun, verb, params = {}) params ||= {} @noun = noun @verb = verb @data_entry_id = params[:data_entry_id] ? params[:data_entry_id].to_i : nil @data_port_id = params[:data_port_id] ? params[:data_port_id].to_i : nil @data = params[:data] @id = params[:id].nil? ? SecureRandom.uuid : params[:id] @created = params[:timestamp].nil? ? Time.now : params[:timestamp] end def to_h { noun: @noun, verb: @verb, data_entry_id: @data_entry_id, data_port_id: @data_port_id, id: @id, created: @created, data: @data, } end def to_json to_h.to_json end end end end