class DVRUBYSDK::Devless

Public Class Methods

new() click to toggle source
# File lib/DV_RUBY_SDK.rb, line 23
def initialize
  @parameters = Hash.new{|hsh,key| hsh[key] = [] }
end

Public Instance Methods

add_data(service, table, data) click to toggle source
# File lib/DV_RUBY_SDK.rb, line 57
def add_data(service, table, data)
  base_url = "#{$url}:#{$port}/api/v1/service/#{service}/db"
  payload = {:resource => [{:name => table, :field => [data]}]}

  return request_processor(base_url, "Post", payload)
end
delete_data(service, table) click to toggle source
# File lib/DV_RUBY_SDK.rb, line 71
def delete_data(service, table)
  base_url = "#{$url}:#{$port}/api/v1/service/#{service}/db"
  payload = {:resource => [{:name => table, :params => [{:delete => true, :where => "#{@parameters[:where]}"}]}]}

  return request_processor(base_url, "Delete", payload)
end
method_call(service, method, params) click to toggle source
# File lib/DV_RUBY_SDK.rb, line 49
def method_call(service, method, params)
  base_url = "#{$url}:#{$port}/api/v1/service/#{service}/rpc?action=#{method}"
  get_id = rand(2000*1233)
  payload = {:jsonrpc => "2.0", :method => service, :id => get_id, :params => params}

  return request_processor(base_url, "Post", payload)
end
offset(value) click to toggle source
# File lib/DV_RUBY_SDK.rb, line 117
def offset(value)
  @parameters[:offset] = value
  self
end
order_by(value) click to toggle source
# File lib/DV_RUBY_SDK.rb, line 112
def order_by(value)
  @parameters[:orderBy] = value
  self
end
query_data(service, table) click to toggle source
# File lib/DV_RUBY_SDK.rb, line 78
def query_data(service, table)

  if @parameters.size != 0
    params = nil

    if @parameters.key?(:where)
      @parameters[:where].each do |value|
        params ="&where=#{value}#{params}"
      end
      @parameters.delete :where
    end

      @parameters.each do |key, value|
        params = "&#{key}=#{value}#{params}"
      end

    base_url = "#{$url}:#{$port}/api/v1/service/#{service}/db?table=#{table}#{params}"
  else
    base_url = "#{$url}:#{$port}/api/v1/service/#{service}/db?table=#{table}"
  end

  return request_processor(base_url, "Get")
end
request_processor(url, option, payload=nil) click to toggle source
# File lib/DV_RUBY_SDK.rb, line 27
def request_processor(url, option, payload=nil)
  @parameters = {}
  path = URI(url)

  http = Net::HTTP.new(path.host, path.port)

  request = case option
  when "Get"    then Net::HTTP::Get.new(path)
  when "Post"   then Net::HTTP::Post.new(path)
  when "Patch"  then Net::HTTP::Patch.new(path)
  when "Delete" then Net::HTTP::Delete.new(path)
  end

  request["devless-token"] = $token
  request["content-type"] = 'application/json'
  request["devless-user-token"] = $devless_user_token ? $devless_user_token : nil

  request.body = payload.to_json if option == "Post" || option == "Patch" ||option == "Delete"
  response = http.request request
  return response.read_body.to_s
end
set_user_token(user_token) click to toggle source
# File lib/DV_RUBY_SDK.rb, line 19
def set_user_token(user_token)
  $devless_user_token = user_token
end
size(value) click to toggle source
# File lib/DV_RUBY_SDK.rb, line 102
def size(value)
  @parameters[:size] = value
  self
end
update_data(service, table, data) click to toggle source
# File lib/DV_RUBY_SDK.rb, line 64
def update_data(service, table, data)
  base_url = "#{$url}:#{$port}/api/v1/service/#{service}/db"
  payload = {:resource => [{:name => table, :params => [{:where => "#{@parameters[:where]}", :data => [data]}]}]}

  return request_processor(base_url, "Patch", payload)
end
where(key, value) click to toggle source
# File lib/DV_RUBY_SDK.rb, line 107
def where(key, value)
  @parameters[:where].push "#{key},#{value}"
  self
end