class Amber::Storage::RemoteJson

Public Class Methods

new(url) click to toggle source
# File lib/amber/storage/remote_json.rb, line 2
def initialize(url)
  @uri = URI.parse(url)
  @status = false
  @data = {}
end

Public Instance Methods

deserialize(data) click to toggle source
# File lib/amber/storage/remote_json.rb, line 51
def deserialize(data)
  data_struct = nil
  begin
    data_struct = JSON.parse(data)
  rescue Exception => e
    p e
  end
  data_struct
end
pack(map) click to toggle source
# File lib/amber/storage/remote_json.rb, line 61
def pack(map)
  data = nil
  if map.is_a? Hash
    if @data.is_a? Hash
      data = {}
      map.each do |key, value|
        if @data.has_key? key
          data[value] = @data[key]
        else
          data[value] = nil
        end
      end
    elsif @data.is_a? Array
      data = []
      @data.each do |result_data_item|
        if result_data_item.is_a? Hash
          data_item = {}
          map.each do |key, value|
            if @result_data_item.has_key? key
              data_item[value] = @result_data_item[key]
            else
              data_item[value] = nil
            end
          end
          data.push data_item
        end
      end
    end
  end
  data
end
query(data) click to toggle source
# File lib/amber/storage/remote_json.rb, line 8
def query(data)
  self.request({"token" => "", "data" => data})
end
request(body = nil) click to toggle source
# File lib/amber/storage/remote_json.rb, line 12
def request(body = nil)
  request = Net::HTTP::Post.new(@uri)
  # request.body = body if body
  response = nil
  @status = false
  @data = {}
  result = Net::HTTP.start(@uri.hostname, @uri.port) do |http|
    response = http.request(request)
  end

  case result
  when Net::HTTPSuccess
    info = self.deserialize(result.body)
    if info.is_a? Hash
      if info.has_key?("status") && info["status"] == 1
        @status = true
        info_data = {}
        info_data = info["data"] if info.has_key?("data")
        if info_data.is_a?(Array) || info_data.is_a?(Hash)
          @data = info_data
        end
      else
        @status = false
      end
    end
  end
end
serialize(data) click to toggle source
# File lib/amber/storage/remote_json.rb, line 40
def serialize(data)
  data_string = ""
  begin
    data = [data] unless data.is_a? Array
    data_string = JSON.generate(data)
  rescue Exception => e
    p e
  end
  data_string
end
unpack(data, map) click to toggle source
# File lib/amber/storage/remote_json.rb, line 93
def unpack(data, map)
  # map.each do |key, value|
  #   if data.is_a? Hash
      
  #   end
  # end
end