Sha256: 6e05c98ea8e64864098f5baa8ae901bedc59678aa930ef2898528df66fcecea4

Contents?: true

Size: 1.85 KB

Versions: 38

Compression:

Stored size: 1.85 KB

Contents

module Reactor
  module Cm
    class LogEntry
      class << self
        def where(conditions = {})
          request = XmlRequest.prepare do |xml|
            where_part(xml, conditions)
            xml.tag!('logEntry-get') do
              xml.tag!('logTime')
              xml.tag!('logText')
              xml.tag!('logType')
              xml.tag!('objectId')
              xml.tag!('receiver')
              xml.tag!('userLogin')
            end
          end
          response = request.execute!
          
          result = []
          log_entries = response.xpath('//logEntry')
          log_entries = [log_entries] unless log_entries.kind_of?(Array)
          log_entries.each do |log_entry_node|
            dict = {}
            log_entry_node.each_element do |value_node|
              if value_node.name == 'logTime'
                dict[value_node.name] = value_node.elements['isoDateTime'].text.to_s
              else
                dict[value_node.name] = value_node.text.to_s
              end
            end

            result << dict
          end

          return result
        rescue Reactor::Cm::XmlRequestError => e
          if e.message =~ /#{Regexp.escape('[060001] Es wurde kein Eintrag gefunden.')}/
            return []
          else
            raise e
          end
        end

        def delete(conditions)
          request = XmlRequest.prepare do |xml|
            where_part(xml, conditions)
            xml.tag!('logEntry-delete')
          end
          response = request.execute!
          result = response.xpath('//deleteLogEntriesCount').map {|x| x.text.to_s }.first
        end

        protected
        def where_part(xml, conditions)
          xml.tag!('logEntry-where') do
            conditions.each do |key, value|
              xml.tag!(key.to_s, value.to_s)
            end
          end
        end
      end
    end
  end
end

Version data entries

38 entries across 38 versions & 2 rubygems

Version Path
infopark_reactor-1.26.1 lib/reactor/cm/log_entry.rb
infopark_reactor-1.26.0 lib/reactor/cm/log_entry.rb
infopark_reactor-1.25.2 lib/reactor/cm/log_entry.rb
infopark_reactor-1.25.1 lib/reactor/cm/log_entry.rb
infopark_reactor-1.25.0 lib/reactor/cm/log_entry.rb
infopark_reactor-1.24.1 lib/reactor/cm/log_entry.rb
infopark_reactor-1.24.0 lib/reactor/cm/log_entry.rb
infopark_reactor-1.23.1 lib/reactor/cm/log_entry.rb
infopark_reactor-1.23.0 lib/reactor/cm/log_entry.rb
infopark_reactor-1.23.0.beta2 lib/reactor/cm/log_entry.rb
infopark_reactor-1.22.6 lib/reactor/cm/log_entry.rb
infopark_reactor-1.22.5 lib/reactor/cm/log_entry.rb
infopark_reactor-1.22.4 lib/reactor/cm/log_entry.rb
infopark_reactor-1.22.3 lib/reactor/cm/log_entry.rb
infopark_reactor-1.22.2 lib/reactor/cm/log_entry.rb
infopark_reactor-1.22.1 lib/reactor/cm/log_entry.rb
infopark_reactor-1.22.0 lib/reactor/cm/log_entry.rb
infopark_reactor-1.21.0 lib/reactor/cm/log_entry.rb
infopark_reactor-1.20.4 lib/reactor/cm/log_entry.rb
infopark_reactor-1.20.3 lib/reactor/cm/log_entry.rb