Sha256: bcfa554d6b09970dcf5ba4370dc2808c209efa68e0626568b2fb22c9b63a3b9e

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

#coding: utf-8
require 'rest_client'

module Ns
  class Client
    #delegate :new, :get, :post, :to=>RestClient::Resource TODO ??
    def self.get(url = '', params = {})
      #params TODO 
      request('get', url, params)
    end

    def self.post(url = '', params = {})
      request('post', url, params)
    end

    def self.put(url = '', params = {})
      request('put', url, params)
    end

    def self.delete()
      request('delete', url, params)
    end

    def self.request(action = 'get', url = '', data_params = {})
      #TODO 网路异常处理
      #use RestClient now
      json_response = RestClient.send(action, url, :data=>data_params)
      result = unpack(json_response)
      if result.ok?
        return result.data.symbolize_keys if result.data.is_a?(Hash)
        result.data
      else
        raise ResultError.new(result)
      end
    end
    
    def self.ajax_request(action = 'get', url = '', data_params = {})
      #TODO 网路异常处理
      json_response = RestClient.send(action, url, :data=>data_params)
      #render :json=>json_response
    end

    def self.unpack(json_response_str = nil)
      Result.new(JSON.parse(json_response_str))
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ns_service_pack-0.1.6 lib/ns_service_pack/client.rb