Class: CS::Client
- Inherits:
-
Object
- Object
- CS::Client
- Defined in:
- lib/cs.rb
Overview
Main entry class of the library.
The login functionality always comes in two pair. The Bang (!) method will raise an exception when there is an error and the normal (without !) will return nil when it fails.
The response can be viewed by looking at the Session
client.session # will return the session object
Authentication with User And Password
client = CS::Client.new
client.login('username', 'password')
Authentication using OAuth
client = CS::Client.new
client.oauth('CONSUMER_KEY', 'CONSUMER_SECRET', 'ACCESS_TOKEN', 'ACCESS_TOKEN_SECRET')
Using different API server
client = CS::Client.new(base_uri: 'https://api.dev.sense-os.nl')
# or
client.base_uri = 'https://api.dev.sense-os.nl'
Instance Attribute Summary collapse
-
#logger ⇒ Object
Returns the value of attribute logger.
-
#session ⇒ Object
Returns the value of attribute session.
Instance Method Summary collapse
-
#api_key=(api_key) ⇒ Object
Create new session by specifying api_key.
- #base_uri=(uri) ⇒ Object
- #current_groups ⇒ Object
-
#current_user ⇒ Object
Retrun logged in user.
-
#errors ⇒ Object
return errors got from session.
- #groups ⇒ Object
-
#initialize(opts = {}) ⇒ Client
constructor
A new instance of Client.
-
#login(user, password, digest = true) ⇒ Object
Create a new session to CommonSense using username and plain text password with ‘login` it will return nil if it not successful.
-
#login!(user, password, digest = true) ⇒ Object
Create a new session to CommonSense using username and plain text password with ‘login!` it will throw exception if there is an error.
-
#new_user(hash = {}) ⇒ Object
Create a new user.
- #notifications ⇒ Object
-
#oauth(consumer_key, consumer_secret, access_token, access_token_secret) ⇒ Object
Create a new session to CommonSense using OAuth credentials.
- #sensors ⇒ Object
-
#session_id=(session_id) ⇒ Object
Create new session by manually specifiying ‘session_id` parameter.
- #triggers ⇒ Object
- #users ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Client
Returns a new instance of Client.
56 57 58 59 60 61 |
# File 'lib/cs.rb', line 56 def initialize(opts={}) = { base_uri: 'https://api.sense-os.nl', }.merge(opts) @base_uri = [:base_uri] end |
Instance Attribute Details
#logger ⇒ Object
Returns the value of attribute logger.
54 55 56 |
# File 'lib/cs.rb', line 54 def logger @logger end |
#session ⇒ Object
Returns the value of attribute session.
53 54 55 |
# File 'lib/cs.rb', line 53 def session @session end |
Instance Method Details
#api_key=(api_key) ⇒ Object
121 122 123 124 125 |
# File 'lib/cs.rb', line 121 def api_key=(api_key) @session = Session.new(base_uri: @base_uri) @session.logger = logger @session.api_key = api_key end |
#base_uri=(uri) ⇒ Object
63 64 65 66 67 68 69 70 |
# File 'lib/cs.rb', line 63 def base_uri=(uri) @base_uri = uri unless session @session = Session.new() end session.base_uri = uri end |
#current_groups ⇒ Object
168 169 170 171 172 |
# File 'lib/cs.rb', line 168 def current_groups group = EndPoint::Group.new group.session = @session group.current_groups end |
#current_user ⇒ Object
Retrun logged in user
128 129 130 131 132 |
# File 'lib/cs.rb', line 128 def current_user user = EndPoint::User.new user.session = @session user.current_user end |
#errors ⇒ Object
return errors got from session
176 177 178 |
# File 'lib/cs.rb', line 176 def errors return @session.errors if @session end |
#groups ⇒ Object
156 157 158 |
# File 'lib/cs.rb', line 156 def groups Relation::GroupRelation.new(@session) end |
#login(user, password, digest = true) ⇒ Object
93 94 95 |
# File 'lib/cs.rb', line 93 def login(user, password, digest=true) login!(user, password, digest) rescue false end |
#login!(user, password, digest = true) ⇒ Object
82 83 84 85 86 |
# File 'lib/cs.rb', line 82 def login!(user, password, digest=true) @session = Session.new(base_uri: @base_uri) @session.logger = logger @session.login(user, password, digest) end |
#new_user(hash = {}) ⇒ Object
Create a new user
client = CS::Client.new
client.new_user(username: 'Ahmy')
client.email = '[email protected]'
...
client.save!
141 142 143 144 145 |
# File 'lib/cs.rb', line 141 def new_user(hash={}) user = EndPoint::User.new(hash) user.session = Session.new(base_uri: @base_uri, authentication: false) user end |
#notifications ⇒ Object
164 165 166 |
# File 'lib/cs.rb', line 164 def notifications Relation::NotificationRelation.new(@session) end |
#oauth(consumer_key, consumer_secret, access_token, access_token_secret) ⇒ Object
101 102 103 104 105 |
# File 'lib/cs.rb', line 101 def oauth(consumer_key, consumer_secret, access_token, access_token_secret) @session = Session.new(base_uri: @base_uri) @session.logger = logger @session.oauth(consumer_key, consumer_secret, access_token, access_token_secret) end |
#sensors ⇒ Object
152 153 154 |
# File 'lib/cs.rb', line 152 def sensors Relation::SensorRelation.new(@session) end |
#session_id=(session_id) ⇒ Object
111 112 113 114 115 |
# File 'lib/cs.rb', line 111 def session_id=(session_id) @session = Session.new(base_uri: @base_uri) @session.logger = logger @session.session_id = session_id end |
#triggers ⇒ Object
160 161 162 |
# File 'lib/cs.rb', line 160 def triggers Relation::TriggerRelation.new(@session) end |
#users ⇒ Object
147 148 149 |
# File 'lib/cs.rb', line 147 def users Relation::UserRelation.new(@session) end |