dit3-api 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 464a19d6b859063bcfec22625531469467d5b79c
4
- data.tar.gz: be8adfd93e7c59e045f55bee94b0ad8882c5b69a
3
+ metadata.gz: f884943f360236bbc87a1b8ad49b77e85163424e
4
+ data.tar.gz: 87014abcaac09a2e66b57103efc5f6dfe83186b3
5
5
  SHA512:
6
- metadata.gz: 212b4cae7264d9ad9505edc02d9591809913dd3852b9206ff57a87f347abf10946701299456722ff9a0aac847b3f77778773c4d9c7e76df8997c633b9710efd8
7
- data.tar.gz: 7d78dcc84ddf672dc7a3eb7ee2d60161d960298561a6e58dfee14ad4b7e922d897e77562f63c22aa09099b2660aed3b1b1c832038856ce7ad4efa03e2f0863f0
6
+ metadata.gz: 3db96e53f4b676b8af0fef9759e3007405d5f58941fabe2a6b197b85a5b73720b860377d8e1daff501f97e71ca50ecac5e88e6fae8801f583ed1075baf8f07b0
7
+ data.tar.gz: ff5d3692f2c8a27e35e43a0b934f3be1a867059022a9f48cc3b95f902eb00b2c4cd0b5cc29a1bdc7cea90ce6ef71115573df552351083df9218903191c4d64eb
@@ -4,6 +4,7 @@ require 'uri'
4
4
 
5
5
  require_relative 'api_error'
6
6
  require_relative 'oauth_client'
7
+ require_relative 'wrappers/accounts'
7
8
  require_relative 'wrappers/tenants'
8
9
 
9
10
  module DIT3::Api
@@ -15,7 +16,8 @@ module DIT3::Api
15
16
  @request_factory = {
16
17
  "GET" => method(:get_request),
17
18
  "POST" => method(:post_request),
18
- "DELETE" => method(:delete_request)
19
+ "DELETE" => method(:delete_request),
20
+ "PUT" => method(:put_request)
19
21
  }
20
22
  end
21
23
 
@@ -23,6 +25,10 @@ module DIT3::Api
23
25
  Wrappers::Tenants.new(self)
24
26
  end
25
27
 
28
+ def accounts
29
+ Wrappers::Accounts.new(self)
30
+ end
31
+
26
32
  def exec_request method, endpoint
27
33
  uri = URI(@api + endpoint)
28
34
  request = @request_factory[method].call(uri)
@@ -52,6 +58,13 @@ module DIT3::Api
52
58
  end
53
59
  end
54
60
 
61
+ def put endpoint, data
62
+ exec_request("PUT", endpoint) do |request|
63
+ request['Content-Type'] = 'application/json'
64
+ request.body = data.to_json
65
+ end
66
+ end
67
+
55
68
  def delete endpoint
56
69
  exec_request("DELETE", endpoint)
57
70
  end
@@ -80,6 +93,10 @@ module DIT3::Api
80
93
  Net::HTTP::Delete.new(endpoint_uri.request_uri, 'Authorization' => "Bearer #{@token}")
81
94
  end
82
95
 
96
+ def put_request endpoint_uri
97
+ Net::HTTP::Put.new(endpoint_uri.request_uri, 'Authorization' => "Bearer #{@token}")
98
+ end
99
+
83
100
  def get_http endpoint_uri
84
101
  http = Net::HTTP.new(endpoint_uri.host, endpoint_uri.port)
85
102
  if (endpoint_uri.scheme == 'https')
@@ -0,0 +1,9 @@
1
+ module DIT3::Api::Model
2
+ class Tenant
3
+ attr_reader :name
4
+
5
+ def initialize hash
6
+ @name = hash['name']
7
+ end
8
+ end
9
+ end
@@ -1,9 +1,17 @@
1
1
  module DIT3::Api::Model
2
2
  class Tenant
3
3
  attr_reader :name
4
+ attr_reader :id
4
5
 
5
6
  def initialize hash
6
7
  @name = hash['name']
8
+ @id = hash['id']
9
+ end
10
+
11
+ def to_hash
12
+ hash = {}
13
+ instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
14
+ hash
7
15
  end
8
16
  end
9
17
  end
@@ -0,0 +1,25 @@
1
+ require_relative '../model/account.rb'
2
+
3
+ module DIT3::Api::Wrappers
4
+ class Accounts
5
+ def initialize client
6
+ @client = client
7
+ end
8
+
9
+ def get name
10
+ begin
11
+ DIT3::Api::Model::Account.new(@client.get("/accounts/#{name}"))
12
+ rescue DIT3::Api::ApiError
13
+ nil
14
+ end
15
+ end
16
+
17
+ def set_tenant name, tenant
18
+ @client.put("/accounts/#{name}/tenant", tenant.to_hash())
19
+ end
20
+
21
+ def exists? name
22
+ !get(name).nil?
23
+ end
24
+ end
25
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dit3-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Maraev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-25 00:00:00.000000000 Z
11
+ date: 2016-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth2-client
@@ -33,8 +33,10 @@ files:
33
33
  - lib/dit3/api.rb
34
34
  - lib/dit3/api/api_error.rb
35
35
  - lib/dit3/api/client.rb
36
+ - lib/dit3/api/model/account.rb
36
37
  - lib/dit3/api/model/tenant.rb
37
38
  - lib/dit3/api/oauth_client.rb
39
+ - lib/dit3/api/wrappers/accounts.rb
38
40
  - lib/dit3/api/wrappers/tenants.rb
39
41
  homepage: http://rubygems.org/gems/dit3-api
40
42
  licenses: