gram_v2_client 2.1.0 → 3.0.0

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: 980e1bcfb5ad1ea738251c5e8827456c8c108336
4
- data.tar.gz: c46d443d827940ade078db8a74b74543ad41ccce
3
+ metadata.gz: 847f2ca7213f515db7970c95459314a0d0c91c3e
4
+ data.tar.gz: 9036514bbbf355b38ed653495c7c3a9312cf3ed1
5
5
  SHA512:
6
- metadata.gz: caafac5ebb681161edf6aedf30b7ead4c0663096c422c561a5458b2d126eb2b60a9f07834f58f88ec124d2b0403170df280c14ea3d8662d03811a6ab7b04a069
7
- data.tar.gz: 2bd8ed2585024b6d85acbf51a599911bfb50053c0d665ba9e45144f4b4b25db17b6b6126dc1ae3fd7c208a4a381cc38420569deb87873967d165064ea5f0c887
6
+ metadata.gz: 35c877bab1fe2fb13136b84ae6b96d71703474172b50c2c4a3d0f1b68b150d23fb649bba1c674ef776f712a4a7c950987a7f24aff1d32bfdc8ad3270d23062b2
7
+ data.tar.gz: 6298cfd9ba8d8a585a0f4df818bc7a3788d322593c6952e49f47b73099a0f3d9ebf3d8ae6e29330e5e16ff539d3fadb2f36404b024975f1da5267b0e96d09955
data/.gitignore CHANGED
@@ -49,3 +49,5 @@ Gemfile.lock
49
49
 
50
50
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
51
51
  .rvmrc
52
+
53
+ bin/env.rb
data/bin/console CHANGED
@@ -10,5 +10,10 @@ require "gram_v2_client"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
+ #You can add a file bin/env.rb to set convenience environment such as configuration
14
+ env_path=File.expand_path("./env.rb",File.dirname(__FILE__))
15
+ require env_path if File.file?(env_path)
16
+
17
+
13
18
  require "irb"
14
19
  IRB.start
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_dependency 'activeresource', "~> 4.0"
30
30
 
31
+ spec.add_development_dependency "byebug", "~> 9.0"
31
32
  spec.add_development_dependency "bundler", "~> 1.11"
32
33
  spec.add_development_dependency "rake", "~> 10.0"
33
34
  spec.add_development_dependency "rspec", "~> 3.0"
@@ -1,4 +1,5 @@
1
1
  require 'active_resource'
2
+ require 'gram_v2_client/exceptions'
2
3
  require 'gram_v2_client/configuration'
3
4
  require 'gram_v2_client/base'
4
5
  require 'gram_v2_client/account'
@@ -8,11 +9,7 @@ require 'gram_v2_client/version'
8
9
 
9
10
  class GramV2Client
10
11
  def self.init_test
11
- GramV2Client.configure do |c|
12
- c.site = "http://localhost:3000/api/v2"
13
- c.user = "admin"
14
- c.password = "password"
15
- end
12
+
16
13
  end
17
14
 
18
15
  end
@@ -1,13 +1,27 @@
1
1
  require 'active_resource'
2
2
 
3
3
  class GramV2Client::Base < ActiveResource::Base
4
- # This is set to enable Configuration change at runtime.
5
-
4
+
6
5
  def to_param
7
6
  uuid
8
7
  end
9
8
 
10
9
  class << self
10
+
11
+ def find(*args,&block)
12
+ begin
13
+ super(*args,&block)
14
+ rescue ActiveResource::ResourceNotFound => e
15
+ raise GramV2Client::ResourceNotFound.new(
16
+ resource: self.name,
17
+ query: args.first,
18
+ source_exception: e
19
+
20
+ )
21
+ end
22
+ end
23
+
24
+ # This is set to enable Configuration change at runtime.
11
25
  def site
12
26
  if GramV2Client.configuration.site
13
27
  if super.to_s != URI.parse(GramV2Client.configuration.site).to_s
@@ -0,0 +1,26 @@
1
+ class GramV2Client
2
+
3
+ class ResourceNotFound < StandardError
4
+
5
+ attr_reader :query
6
+ attr_reader :resource
7
+ attr_reader :source_exception
8
+
9
+
10
+ def initialize(query: nil, resource: nil, source_exception: nil)
11
+ @error=self.class.name
12
+ @query=query
13
+ @resource=resource
14
+ @source_exception=source_exception
15
+ end
16
+
17
+ def to_s
18
+ message = "Failed."
19
+ message << " #{resource} not found" if resource
20
+ message << " with query '#{query}'" if query
21
+ end
22
+
23
+ end
24
+
25
+
26
+ end
@@ -0,0 +1,87 @@
1
+ require "base64"
2
+ class GramAccountMocker
3
+
4
+
5
+ DEFAULT_GRAM_ACCOUNT={
6
+ "uuid"=>"12345678-1234-1234-1234-123456789012",
7
+ "hruid"=>"francois.dupont.2011",
8
+ "firstname"=>"Francois",
9
+ "lastname"=>"Dupont",
10
+ "id_soce"=>"84189",
11
+ "enable"=>"TRUE",
12
+ "id"=>98765,
13
+ "uid_number"=>99765,
14
+ "gid_number"=>99765,
15
+ "home_directory"=>"/nonexistant",
16
+ "alias"=>["francois.dupont.2011", "98765", "98765J"],
17
+ "password"=>"Not Display",
18
+ "email"=>"francois.dupont",
19
+ "email_forge"=>"francois.dupont@poubs.org",
20
+ "birthdate"=>"1987-09-17 00:00:00",
21
+ "login_validation_check"=>"CGU=2015-06-04;",
22
+ "description"=>"Agoram inscription - via module register - creation 2015-06-04 11:32:48",
23
+ "entities"=>["comptes", "gram"],
24
+ "is_gadz"=>"true",
25
+ "gapps_id" => nil
26
+ }
27
+
28
+ attr_reader :attributes
29
+
30
+ def initialize(attr={},auth=nil)
31
+ @auth=auth
32
+ @attributes=attr
33
+ end
34
+
35
+ def uuid
36
+ @attributes["uuid"]
37
+ end
38
+
39
+ def self.for(attr:{},auth: nil)
40
+ string_hash=attr.inject({}){|memo,(k,v)| memo[k.to_s] = v; memo}
41
+ self.new(DEFAULT_GRAM_ACCOUNT.merge(string_hash),auth)
42
+ end
43
+
44
+ def uri_for_get_request(with_password: false)
45
+ uri= "/api/v2/accounts/#{uuid}.json"
46
+ uri+= "?show_password_hash=true" if with_password
47
+ uri
48
+ end
49
+
50
+ def mock_get_request(with_password: false)
51
+ uri=uri_for_get_request(with_password: with_password)
52
+ ActiveResource::HttpMock.respond_to({},false) do |mock|
53
+ mock.get uri, {"Authorization"=>authorization_header,'Accept' => 'application/json'}, attributes.to_json, 200
54
+ end
55
+ end
56
+
57
+ def mock_search_request_for(param,value=nil,response=[attributes])
58
+ value||=attributes[param.to_s]
59
+ value=URI.escape(URI.escape(value.to_s),"@")
60
+ response=response.to_json unless response.is_a? String
61
+ ActiveResource::HttpMock.respond_to({},false) do |mock|
62
+ mock.get "/api/v2/accounts.json?#{param.to_s}=#{value}", {"Authorization"=>authorization_header,'Accept' => 'application/json'}, response, 200
63
+ end
64
+ end
65
+
66
+ def mock_put_request()
67
+ uri= "/api/v2/accounts/#{uuid}.json"
68
+ ActiveResource::HttpMock.respond_to({},false) do |mock|
69
+ mock.put uri, {"Authorization"=>authorization_header,'Content-Type' => 'application/json'}, attributes.to_json, 200
70
+ end
71
+ end
72
+
73
+ def self.reset!
74
+ ActiveResource::HttpMock.reset!
75
+ end
76
+
77
+ def self.http_basic_auth_header(user,password)
78
+ "Basic "+Base64.encode64("#{user}:#{password}").chomp
79
+ end
80
+
81
+ private
82
+
83
+ def authorization_header
84
+ @auth
85
+ end
86
+
87
+ end
@@ -1,5 +1,5 @@
1
1
  class GramV2Client
2
2
 
3
- VERSION = "2.1.0"
3
+ VERSION = "3.0.0"
4
4
 
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gram_v2_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre Narbonne
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-02-09 00:00:00.000000000 Z
12
+ date: 2017-03-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activeresource
@@ -25,6 +25,20 @@ dependencies:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: '4.0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: byebug
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '9.0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '9.0'
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: bundler
30
44
  requirement: !ruby/object:Gem::Requirement
@@ -81,14 +95,17 @@ files:
81
95
  - README.md
82
96
  - Rakefile
83
97
  - bin/console
98
+ - bin/env.rb
84
99
  - bin/setup
85
100
  - gram_v2_client.gemspec
86
101
  - lib/gram_v2_client.rb
87
102
  - lib/gram_v2_client/account.rb
88
103
  - lib/gram_v2_client/base.rb
89
104
  - lib/gram_v2_client/configuration.rb
105
+ - lib/gram_v2_client/exceptions.rb
90
106
  - lib/gram_v2_client/group.rb
91
107
  - lib/gram_v2_client/role.rb
108
+ - lib/gram_v2_client/rspec/gram_account_mocker.rb
92
109
  - lib/gram_v2_client/version.rb
93
110
  homepage: https://github.com/gadzorg/gram2_api_client_ruby
94
111
  licenses: