Class: Sticapi::SticapiClient
- Inherits:
- 
      Object
      
        - Object
- Sticapi::SticapiClient
 
- Includes:
- Singleton
- Defined in:
- lib/sticapi_client.rb
Instance Attribute Summary collapse
- 
  
    
      #access_token  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute access_token. 
- 
  
    
      #client  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute client. 
- 
  
    
      #expiry  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute expiry. 
- 
  
    
      #host  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute host. 
- 
  
    
      #password  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute password. 
- 
  
    
      #port  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute port. 
- 
  
    
      #ssl  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute ssl. 
- 
  
    
      #uid  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute uid. 
- 
  
    
      #urn  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute urn. 
- 
  
    
      #user  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute user. 
Instance Method Summary collapse
- #expiry_now ⇒ Object
- #get_token ⇒ Object
- 
  
    
      #initialize  ⇒ SticapiClient 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of SticapiClient. 
- #sticapi_request(route, options = {}) ⇒ Object
- #update_token(response) ⇒ Object
- #uri ⇒ Object
Constructor Details
#initialize ⇒ SticapiClient
| 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # File 'lib/sticapi_client.rb', line 37 def initialize configs = YAML.load_file("#{Rails.root}/config/sticapi.yml")[Rails.env] @host = configs["host"] @port = configs["port"] || 80 @user = configs["user"] @urn = configs["urn"] @ssl = configs["ssl"] || false @password = configs["password"] @access_token = "" @client = "" @uid = "" @expiry = "" get_token end | 
Instance Attribute Details
#access_token ⇒ Object
Returns the value of attribute access_token.
| 32 33 34 | # File 'lib/sticapi_client.rb', line 32 def access_token @access_token end | 
#client ⇒ Object
Returns the value of attribute client.
| 33 34 35 | # File 'lib/sticapi_client.rb', line 33 def client @client end | 
#expiry ⇒ Object
Returns the value of attribute expiry.
| 35 36 37 | # File 'lib/sticapi_client.rb', line 35 def expiry @expiry end | 
#host ⇒ Object
Returns the value of attribute host.
| 26 27 28 | # File 'lib/sticapi_client.rb', line 26 def host @host end | 
#password ⇒ Object
Returns the value of attribute password.
| 31 32 33 | # File 'lib/sticapi_client.rb', line 31 def password @password end | 
#port ⇒ Object
Returns the value of attribute port.
| 28 29 30 | # File 'lib/sticapi_client.rb', line 28 def port @port end | 
#ssl ⇒ Object
Returns the value of attribute ssl.
| 29 30 31 | # File 'lib/sticapi_client.rb', line 29 def ssl @ssl end | 
#uid ⇒ Object
Returns the value of attribute uid.
| 34 35 36 | # File 'lib/sticapi_client.rb', line 34 def uid @uid end | 
#urn ⇒ Object
Returns the value of attribute urn.
| 27 28 29 | # File 'lib/sticapi_client.rb', line 27 def urn @urn end | 
#user ⇒ Object
Returns the value of attribute user.
| 30 31 32 | # File 'lib/sticapi_client.rb', line 30 def user @user end | 
Instance Method Details
#expiry_now ⇒ Object
| 70 71 72 | # File 'lib/sticapi_client.rb', line 70 def expiry_now @expiry = 0 end | 
#get_token ⇒ Object
| 56 57 58 59 60 61 62 63 64 65 66 67 68 | # File 'lib/sticapi_client.rb', line 56 def get_token if @access_token.blank? || (DateTime.now > Time.at(@expiry.to_i)) uri = URI.parse("#{self.uri}/auth/sign_in") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = @ssl request = Net::HTTP::Post.new(uri.request_uri) request["Content-Type"] = "application/json" request["email"] = @user request["password"] = @password response = http.request(request) update_token(response) end end | 
#sticapi_request(route, options = {}) ⇒ Object
| 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | # File 'lib/sticapi_client.rb', line 81 def sticapi_request(route, = {}) get_token kind = [:kind] || "post" uri = URI.parse("#{self.uri}#{route}") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = @ssl request = nil request = Net::HTTP::Post.new(uri.request_uri) if kind == "post" request = Net::HTTP::Get.new(uri.request_uri) if kind == "get" request["Content-Type"] = "application/json" request["access-token"] = @access_token request["client"] = @client request["uid"] = @uid request["expiry"] = @expiry request.body = .except(:kind).to_json response = http.request(request) update_token(response) JSON.parse(response.body) end | 
#update_token(response) ⇒ Object
| 74 75 76 77 78 79 | # File 'lib/sticapi_client.rb', line 74 def update_token(response) @access_token = response["access-token"] if response["access-token"] @client = response["client"] if response["client"] @uid = response["uid"] if response["uid"] @expiry = response["expiry"] if response["expiry"] end | 
#uri ⇒ Object
| 52 53 54 | # File 'lib/sticapi_client.rb', line 52 def uri "http#{"s" if @ssl}://#{@host}:#{@port}#{"/" if @urn}#{@urn}" end |