quill-api-client 0.1.6 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,6 +6,7 @@ module Quill
6
6
  autoload :BaseModel, 'quill/base_model'
7
7
  autoload :Client, 'quill/client'
8
8
  autoload :Configuration, 'quill/configuration'
9
+ autoload :Endpoint, 'quill/endpoints'
9
10
  autoload :EndpointDefinitions, 'quill/endpoint_definitions'
10
11
  autoload :Oauth, 'quill/oauth'
11
12
 
@@ -40,45 +40,5 @@ module Quill
40
40
  raise response.error if response.status == 401
41
41
  response
42
42
  end
43
-
44
- module Endpoint
45
- class Base
46
- attr_accessor :name, :api
47
-
48
- def initialize api, name, definition
49
- @api = api
50
- @name = name
51
- @attributes = definition['attributes'].keys
52
- @readonly_attributes = definition['readonly_attributes'].try(:keys) || []
53
- end
54
-
55
- def find id, params = {}
56
- check_keys(params)
57
- response = api.get([name,id].join('/'), params)
58
- Hashie::Mash.new(response.body['object'])
59
- end
60
-
61
- def create params
62
- check_keys(params)
63
- response = api.post(name, params)
64
- Hashie::Mash.new(response.body['object'])
65
- end
66
-
67
- def update id, params
68
- check_keys(params)
69
- response = api.put([name,id].join('/'), params)
70
- Hashie::Mash.new(response.body['object'])
71
- end
72
-
73
- def list
74
- end
75
-
76
- def check_keys params
77
- invalid_keys = params.stringify_keys.keys - @attributes - @readonly_attributes
78
- raise InvalidKeys, "Endpoint ##{name} does not support key(s) #{invalid_keys.join(', ')}" unless invalid_keys.empty?
79
- end
80
- end
81
- end
82
43
  end
83
-
84
44
  end
@@ -0,0 +1,41 @@
1
+ module Quill
2
+ module Endpoint
3
+ class Base
4
+ attr_accessor :name, :api
5
+ class InvalidKeys < Exception ; end
6
+
7
+ def initialize api, name, definition
8
+ @api = api
9
+ @name = name
10
+ @attributes = definition['attributes'].keys
11
+ @readonly_attributes = definition['readonly_attributes'].try(:keys) || []
12
+ end
13
+
14
+ def find id, params = {}
15
+ check_keys(params)
16
+ response = api.get([name,id].join('/'), params)
17
+ Hashie::Mash.new(response.body['object'])
18
+ end
19
+
20
+ def create params
21
+ check_keys(params)
22
+ response = api.post(name, params)
23
+ Hashie::Mash.new(response.body['object'])
24
+ end
25
+
26
+ def update id, params
27
+ check_keys(params)
28
+ response = api.put([name,id].join('/'), params)
29
+ Hashie::Mash.new(response.body['object'])
30
+ end
31
+
32
+ def list
33
+ end
34
+
35
+ def check_keys params
36
+ invalid_keys = params.stringify_keys.keys - @attributes - @readonly_attributes
37
+ raise InvalidKeys, "Endpoint ##{name} does not support key(s) #{invalid_keys.join(', ')}" unless invalid_keys.empty?
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,20 +1,22 @@
1
+ require 'quill/endpoints'
2
+
1
3
  module Quill
2
4
  module EndpointDefinitions
3
5
 
4
6
  def activities
5
- Quill::Endpoints::Activities.new(self)
7
+ Quill::Endpoint::Activities.new(self, 'activities', {"description"=>"\nProgrammatically interact with Activities on Compass. Typically only will\nread individual records from this resource.\n", "attributes"=>{"data"=>{}, "name"=>nil, "description"=>nil}, "access"=>{"list"=>["all"], "read"=>["all"], "update"=>["admin"], "create"=>["admin"], "destroy"=>["owner", "admin"]}, "options"=>{}})
6
8
  end
7
9
 
8
10
  def activity_sessions
9
- Quill::Endpoints::ActivitySessions.new(self)
11
+ Quill::Endpoint::ActivitySessions.new(self, 'activity_sessions', {"description"=>"\nCompass activity sessions are used to store progress information about a\nuser's interaction with an activity. Session's can be created without an\n+access_token+ to allow anonymous access. If you have an ID of an\nanonymous session you should also be able to update it without an\n+access_token+.\n", "attributes"=>{"percentage"=>nil, "time_spent"=>nil, "state"=>nil, "completed_at"=>nil, "data"=>{}, "temporary"=>nil, "activity_uid"=>nil, "anonymous"=>nil}, "access"=>{"list"=>["all"], "read"=>["owner"], "update"=>["owner", "admin"], "create"=>["all"], "destroy"=>["owner", "admin"]}, "options"=>{}})
10
12
  end
11
13
 
12
14
  def me
13
- Quill::Endpoints::Me.new(self)
15
+ Quill::Endpoint::Me.new(self, 'me', {"description"=>"\nRequest information about the current authenticated user based on\n+access_token+.\n", "attributes"=>{"role"=>nil, "name"=>nil, "email"=>nil, "username"=>nil}, "options"=>{"singular"=>true}, "access"=>{"read"=>["all"], "update"=>["owner", "admin"], "create"=>["user"], "destroy"=>["owner", "admin"]}})
14
16
  end
15
17
 
16
18
  def ping
17
- Quill::Endpoints::Ping.new(self)
19
+ Quill::Endpoint::Ping.new(self, 'ping', {"description"=>"Alive check.\n", "attributes"=>{"session_id"=>nil, "status"=>nil}, "options"=>{"singular"=>true}, "access"=>{"read"=>["all"], "update"=>["owner", "admin"], "create"=>["user"], "destroy"=>["owner", "admin"]}})
18
20
  end
19
21
 
20
22
  end
@@ -1,5 +1,6 @@
1
1
  module Quill
2
2
  module Endpoint
3
+ autoload :Base, 'quill/endpoint_base'
3
4
 
4
5
  class Activities < Base
5
6
  # Programmatically interact with Activities on Compass. Typically only will
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quill-api-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-24 00:00:00.000000000 Z
12
+ date: 2014-04-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: oauth2
16
- requirement: &70335961783660 !ruby/object:Gem::Requirement
16
+ requirement: &70353735723940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70335961783660
24
+ version_requirements: *70353735723940
25
25
  description: Wrapper to Quill API
26
26
  email: quinn@tastehoneyco.com
27
27
  executables: []
@@ -33,6 +33,7 @@ files:
33
33
  - lib/quill/base_model.rb
34
34
  - lib/quill/client.rb
35
35
  - lib/quill/configuration.rb
36
+ - lib/quill/endpoint_base.rb
36
37
  - lib/quill/endpoint_definitions.rb
37
38
  - lib/quill/endpoints.rb
38
39
  - lib/quill/oauth.rb