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
117 118 119 120 121 |
# File 'lib/cs.rb', line 117 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 |
# File 'lib/cs.rb', line 63 def base_uri=(uri) @base_uri = uri session.base_uri = uri end |
#current_groups ⇒ Object
164 165 166 167 168 |
# File 'lib/cs.rb', line 164 def current_groups group = EndPoint::Group.new group.session = @session group.current_groups end |
#current_user ⇒ Object
Retrun logged in user
124 125 126 127 128 |
# File 'lib/cs.rb', line 124 def current_user user = EndPoint::User.new user.session = @session user.current_user end |
#errors ⇒ Object
return errors got from session
172 173 174 |
# File 'lib/cs.rb', line 172 def errors return @session.errors if @session end |
#groups ⇒ Object
152 153 154 |
# File 'lib/cs.rb', line 152 def groups Relation::GroupRelation.new(@session) end |
#login(user, password, digest = true) ⇒ Object
89 90 91 |
# File 'lib/cs.rb', line 89 def login(user, password, digest=true) login!(user, password, digest) rescue false end |
#login!(user, password, digest = true) ⇒ Object
78 79 80 81 82 |
# File 'lib/cs.rb', line 78 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!
137 138 139 140 141 |
# File 'lib/cs.rb', line 137 def new_user(hash={}) user = EndPoint::User.new(hash) user.session = Session.new(base_uri: @base_uri, authentication: false) user end |
#notifications ⇒ Object
160 161 162 |
# File 'lib/cs.rb', line 160 def notifications Relation::NotificationRelation.new(@session) end |
#oauth(consumer_key, consumer_secret, access_token, access_token_secret) ⇒ Object
97 98 99 100 101 |
# File 'lib/cs.rb', line 97 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
148 149 150 |
# File 'lib/cs.rb', line 148 def sensors Relation::SensorRelation.new(@session) end |
#session_id=(session_id) ⇒ Object
107 108 109 110 111 |
# File 'lib/cs.rb', line 107 def session_id=(session_id) @session = Session.new(base_uri: @base_uri) @session.logger = logger @session.session_id = session_id end |
#triggers ⇒ Object
156 157 158 |
# File 'lib/cs.rb', line 156 def triggers Relation::TriggerRelation.new(@session) end |
#users ⇒ Object
143 144 145 |
# File 'lib/cs.rb', line 143 def users Relation::UserRelation.new(@session) end |