datacentred 0.1.0pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +35 -0
  4. data/README.md +2 -0
  5. data/Rakefile +10 -0
  6. data/circle.yml +5 -0
  7. data/datacentred.gemspec +23 -0
  8. data/lib/datacentred/error.rb +28 -0
  9. data/lib/datacentred/model/project.rb +44 -0
  10. data/lib/datacentred/model/role.rb +44 -0
  11. data/lib/datacentred/model/usage.rb +15 -0
  12. data/lib/datacentred/model/user.rb +32 -0
  13. data/lib/datacentred/model/version.rb +14 -0
  14. data/lib/datacentred/request/base.rb +46 -0
  15. data/lib/datacentred/request/projects.rb +38 -0
  16. data/lib/datacentred/request/roles.rb +38 -0
  17. data/lib/datacentred/request/usage.rb +10 -0
  18. data/lib/datacentred/request/users.rb +26 -0
  19. data/lib/datacentred/request/versions.rb +10 -0
  20. data/lib/datacentred/response.rb +12 -0
  21. data/lib/datacentred.rb +40 -0
  22. data/test/integration/projects_test.rb +117 -0
  23. data/test/integration/roles_test.rb +128 -0
  24. data/test/integration/usage_test.rb +24 -0
  25. data/test/integration/users_test.rb +128 -0
  26. data/test/integration/versions_test.rb +15 -0
  27. data/test/test_helper.rb +14 -0
  28. data/test/vcr_cassettes/add_user_to_project.yml +140 -0
  29. data/test/vcr_cassettes/add_user_to_role.yml +187 -0
  30. data/test/vcr_cassettes/create_project.yml +58 -0
  31. data/test/vcr_cassettes/create_role_with_invalid_permissions.yml +51 -0
  32. data/test/vcr_cassettes/create_role_with_permissions.yml +51 -0
  33. data/test/vcr_cassettes/create_role_without_permissions.yml +50 -0
  34. data/test/vcr_cassettes/create_user.yml +50 -0
  35. data/test/vcr_cassettes/delete_project.yml +103 -0
  36. data/test/vcr_cassettes/delete_role.yml +183 -0
  37. data/test/vcr_cassettes/delete_user.yml +136 -0
  38. data/test/vcr_cassettes/find_role.yml +97 -0
  39. data/test/vcr_cassettes/list_project_users.yml +58 -0
  40. data/test/vcr_cassettes/list_projects.yml +58 -0
  41. data/test/vcr_cassettes/list_role_users.yml +97 -0
  42. data/test/vcr_cassettes/list_roles.yml +50 -0
  43. data/test/vcr_cassettes/list_users.yml +58 -0
  44. data/test/vcr_cassettes/project_create_failed_validation.yml +56 -0
  45. data/test/vcr_cassettes/project_not_found.yml +54 -0
  46. data/test/vcr_cassettes/project_update_failed_validation.yml +55 -0
  47. data/test/vcr_cassettes/project_update_not_found.yml +54 -0
  48. data/test/vcr_cassettes/remove_user_from_project.yml +138 -0
  49. data/test/vcr_cassettes/remove_user_from_role.yml +228 -0
  50. data/test/vcr_cassettes/remove_user_from_role_not_found.yml +95 -0
  51. data/test/vcr_cassettes/show_project.yml +58 -0
  52. data/test/vcr_cassettes/show_usage.yml +51 -0
  53. data/test/vcr_cassettes/show_user.yml +97 -0
  54. data/test/vcr_cassettes/show_version.yml +50 -0
  55. data/test/vcr_cassettes/update_project.yml +58 -0
  56. data/test/vcr_cassettes/update_role.yml +98 -0
  57. data/test/vcr_cassettes/update_role_with_invalid_permissions.yml +98 -0
  58. data/test/vcr_cassettes/update_user.yml +97 -0
  59. data/test/vcr_cassettes/usage_not_found.yml +54 -0
  60. data/test/vcr_cassettes/user_create_failed_validation.yml +54 -0
  61. data/test/vcr_cassettes/user_delete_failed_validation.yml +54 -0
  62. data/test/vcr_cassettes/user_delete_not_found.yml +54 -0
  63. data/test/vcr_cassettes/user_show_not_found.yml +54 -0
  64. data/test/vcr_cassettes/user_update_failed_validation.yml +96 -0
  65. data/test/vcr_cassettes/user_update_not_found.yml +48 -0
  66. metadata +165 -0
@@ -0,0 +1,128 @@
1
+ require_relative '../test_helper'
2
+
3
+ module Datacentred
4
+ class RolesIntegrationTest < Minitest::Test
5
+ def setup
6
+ @create_params1 = {"role" => {"name" => "New Role"}}
7
+ @create_params2 = {"role" => {"name" => "Historical Figures",
8
+ "permissions" => ["usage.read","tickets.modify"]}}
9
+ @new_permissions = {"role" => {"permissions" => ['usage.read',
10
+ 'roles.modify', 'roles.read']}}
11
+ @invalid_permissions = {"role" => {"name" => "Genghis Khan",
12
+ "permissions" => ["fighting"]}}
13
+ @update_params = {"role" => {"name" => "Administrator 2"}}
14
+ @user_id = "06eacbafda355a927f50f304db3af132"
15
+ end
16
+
17
+ def test_list_roles
18
+ VCR.use_cassette('list_roles') do
19
+ @roles = Datacentred::Role.all
20
+ assert_equal 2, @roles.count
21
+ @role = @roles.first
22
+ assert @role.id
23
+ assert @role.name
24
+ assert @role.permissions
25
+ end
26
+ end
27
+
28
+ def test_find_role
29
+ VCR.use_cassette('find_role') do
30
+ @new_role = Datacentred::Role.create(@create_params1)
31
+ @role = Datacentred::Role.find(@new_role.id)
32
+ assert_equal @role.name, "New Role"
33
+ end
34
+ end
35
+
36
+ def test_create_role_without_permissions
37
+ VCR.use_cassette('create_role_without_permissions') do
38
+ @new_role = Datacentred::Role.create(@create_params1)
39
+ assert_equal @new_role.name, "New Role"
40
+ end
41
+ end
42
+
43
+ def test_create_role_with_permissions
44
+ VCR.use_cassette('create_role_with_permissions') do
45
+ @new_role = Datacentred::Role.create(@create_params2)
46
+ assert_equal @new_role.name, "Historical Figures"
47
+ end
48
+ end
49
+
50
+ def test_create_role_with_invalid_permissions
51
+ VCR.use_cassette('create_role_with_invalid_permissions') do
52
+ assert_raises(Datacentred::UnprocessableEntity) do
53
+ @role = Datacentred::Role.create(@invalid_permissions)
54
+ end
55
+ end
56
+ end
57
+
58
+ def test_update_role
59
+ VCR.use_cassette('update_role') do
60
+ @role = Datacentred::Role.create(@create_params1)
61
+ assert_equal @role.name, 'New Role'
62
+ @updated_role = Datacentred::Role.update(@role.id, @update_params)
63
+ assert_equal @updated_role.name, 'Administrator 2'
64
+ end
65
+ end
66
+
67
+ def test_update_role_with_invalid_permissions
68
+ VCR.use_cassette('update_role_with_invalid_permissions') do
69
+ @role = Datacentred::Role.create(@create_params1)
70
+ assert_raises(Datacentred::UnprocessableEntity) do
71
+ Datacentred::Role.update(@role.id, @invalid_permissions)
72
+ end
73
+ end
74
+ end
75
+
76
+ def test_delete_role
77
+ VCR.use_cassette('delete_role') do
78
+ @role = Datacentred::Role.create(@create_params1)
79
+ assert Datacentred::Role.find(@role.id)
80
+ Datacentred::Role.delete(@role.id)
81
+ assert_raises(Datacentred::NotFoundError) do
82
+ @role = Datacentred::Role.find(@role.id)
83
+ end
84
+ end
85
+ end
86
+
87
+ def test_list_role_users
88
+ VCR.use_cassette('list_role_users') do
89
+ @role = Datacentred::Role.create(@create_params1)
90
+ @user_list = Datacentred::Role.users(@role.id)
91
+ assert_equal @user_list.count, 0
92
+ end
93
+ end
94
+
95
+ def test_add_user_to_role
96
+ VCR.use_cassette('add_user_to_role') do
97
+ @role = Datacentred::Role.create(@create_params1)
98
+ @user_list = Datacentred::Role.users(@role.id)
99
+ assert_equal @user_list.count, 0
100
+ Datacentred::Role.add_user(@role.id, @user_id)
101
+ @new_users_list = Datacentred::Role.users(@role.id)
102
+ assert_equal @new_users_list.count, 1
103
+ assert_equal @new_users_list.first.id, @user_id
104
+ end
105
+ end
106
+
107
+ def test_remove_user_from_role
108
+ VCR.use_cassette('remove_user_from_role') do
109
+ @role = Datacentred::Role.create(@create_params1)
110
+ Datacentred::Role.add_user(@role.id, @user_id)
111
+ @user_list = Datacentred::Role.users(@role.id)
112
+ assert_equal @user_list.count, 1
113
+ Datacentred::Role.remove_user(@role.id, @user_id)
114
+ @new_user_list = Datacentred::Role.users(@role.id)
115
+ assert_equal @new_user_list.count, 0
116
+ end
117
+ end
118
+
119
+ def test_remove_user_from_role_not_found
120
+ VCR.use_cassette('remove_user_from_role_not_found') do
121
+ @role = Datacentred::Role.create(@create_params1)
122
+ assert_raises(Datacentred::NotFoundError) do
123
+ Datacentred::Role.remove_user(@role.id, "unknown")
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,24 @@
1
+ require_relative '../test_helper'
2
+
3
+ module Datacentred
4
+ class UsageIntegrationTest < Minitest::Test
5
+
6
+ def test_show_usage
7
+ VCR.use_cassette('show_usage') do
8
+ @usage = Datacentred::Usage.show(2017, 07)
9
+ assert @usage.is_a? Array
10
+ assert @usage.first.name.is_a? String
11
+ assert @usage.first.id.is_a? String
12
+ assert @usage.first.usage.is_a? Hash
13
+ end
14
+ end
15
+
16
+ def test_raises_not_found_if_no_data
17
+ VCR.use_cassette('usage_not_found') do
18
+ assert_raises(Datacentred::NotFoundError) do
19
+ @usage = Datacentred::Usage.show(2010, 07)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,128 @@
1
+ require_relative '../test_helper'
2
+
3
+ module Datacentred
4
+ class UsersIntegrationTest < Minitest::Test
5
+
6
+ def setup
7
+
8
+ @create_params_without_pass = {"user" => {"email" => "death@afterlife2.com"}}
9
+ @create_params = {"user" => {"email" => "death@afterlife.com",
10
+ "password" => "melvin11", "first_name" => "Foo","last_name" => "Bar"}}
11
+ @create_params2 = {"user" => {"email" => "death2@afterlife2.com",
12
+ "password" => "melvin22"}}
13
+ @user_id = "bda96ae2c89347d5a059d663c153ec2a"
14
+ @update_params = {"user" => {"first_name" => "Foo2"}}
15
+ @short_password = {"user" => {"password" => "tiny"}}
16
+ end
17
+
18
+ def test_user_object_properties
19
+ VCR.use_cassette('list_users') do
20
+ @users = Datacentred::User.all
21
+ user = @users.first
22
+ assert user.first_name.is_a? String
23
+ assert user.last_name.is_a? String
24
+ assert user.id.is_a? String
25
+ assert user.created_at.is_a? Time
26
+ assert user.updated_at.is_a? Time
27
+ refute user.links
28
+ end
29
+ end
30
+
31
+ def test_list_users
32
+ VCR.use_cassette('list_users') do
33
+ @users = Datacentred::User.all
34
+ assert_equal 2, @users.count
35
+ end
36
+ end
37
+
38
+ def test_show_user
39
+ VCR.use_cassette('show_user') do
40
+ @new_user = Datacentred::User.create(@create_params)
41
+ @user = Datacentred::User.find(@new_user.id)
42
+ assert @user.id
43
+ assert @user.email
44
+ assert @user.first_name
45
+ assert @user.last_name
46
+ assert @user.created_at
47
+ assert @user.updated_at
48
+ end
49
+ end
50
+
51
+ def test_raises_not_found_if_cant_find_user
52
+ VCR.use_cassette('user_show_not_found') do
53
+ assert_raises(Datacentred::NotFoundError) do
54
+ @user = Datacentred::User.find("unknown")
55
+ end
56
+ end
57
+ end
58
+
59
+ def test_create_user
60
+ VCR.use_cassette('create_user') do
61
+ @user = Datacentred::User.create(@create_params)
62
+ assert @user.id
63
+ assert_equal @user.email, 'death@afterlife.com'
64
+ assert_equal @user.first_name, "Foo"
65
+ assert_equal @user.last_name, "Bar"
66
+ end
67
+ end
68
+
69
+ def test_raises_unprocessable_entity_if_failed_validation_for_create
70
+ VCR.use_cassette('user_create_failed_validation') do
71
+ assert_raises(Datacentred::UnprocessableEntity) do
72
+ @user = Datacentred::User.create(@create_params_without_pass)
73
+ end
74
+ end
75
+ end
76
+
77
+ def test_update_user
78
+ VCR.use_cassette('update_user') do
79
+ @user = Datacentred::User.create(@create_params)
80
+ @user = Datacentred::User.update(@user.id, @update_params)
81
+ assert_equal @user.first_name, 'Foo2'
82
+ end
83
+ end
84
+
85
+ def test_raises_unprocessable_entity_if_failed_validation_for_update
86
+ VCR.use_cassette('user_update_failed_validation') do
87
+ @user = Datacentred::User.create(@create_params)
88
+ assert_raises(Datacentred::UnprocessableEntity) do
89
+ @user = Datacentred::User.update(@user.id, @short_password)
90
+ end
91
+ end
92
+ end
93
+
94
+ def test_raises_not_found_if_user_doesnt_exist
95
+ VCR.use_cassette('user_update_not_found') do
96
+ assert_raises(Datacentred::NotFoundError) do
97
+ @user = Datacentred::User.update("unknown", @update_params)
98
+ end
99
+ end
100
+ end
101
+
102
+ def test_delete_user
103
+ VCR.use_cassette('delete_user') do
104
+ @user = Datacentred::User.create(@create_params)
105
+ Datacentred::User.delete(@user.id)
106
+ assert_raises(Datacentred::NotFoundError) do
107
+ @user = Datacentred::User.find(@user.id)
108
+ end
109
+ end
110
+ end
111
+
112
+ def test_raises_unprocessable_entity_if_failed_validation_for_delete
113
+ VCR.use_cassette('user_delete_failed_validation') do
114
+ assert_raises(Datacentred::UnprocessableEntity) do
115
+ @user = Datacentred::User.delete("my_user_id")
116
+ end
117
+ end
118
+ end
119
+
120
+ def test_user_cant_be_deleted_if_not_found
121
+ VCR.use_cassette('user_delete_not_found') do
122
+ assert_raises(Datacentred::NotFoundError) do
123
+ @user = Datacentred::User.delete("unknown")
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,15 @@
1
+ require_relative '../test_helper'
2
+
3
+ module Datacentred
4
+ class VersionsIntegrationTest < Minitest::Test
5
+
6
+ def test_show_version
7
+ VCR.use_cassette('show_version') do
8
+ @versions = Datacentred::Version.show
9
+ assert @versions.is_a? Array
10
+ assert_equal @versions.first.id, "1"
11
+ assert_equal @versions.first.status, "CURRENT"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ require_relative '../lib/datacentred'
2
+ require 'json'
3
+ require 'vcr'
4
+
5
+ VCR.configure do |c|
6
+ c.cassette_library_dir = 'test/vcr_cassettes'
7
+ c.hook_into :webmock
8
+ end
9
+
10
+ TEST_ENV = true
11
+
12
+ require 'rubygems'
13
+ gem "minitest"
14
+ require 'minitest/autorun'
@@ -0,0 +1,140 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://my.datacentred.io/api/projects/project_id1/users
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/vnd.datacentred.api+json; version=1
12
+ Authorization:
13
+ - Token token=access_key:secret_key
14
+ Content-Type:
15
+ - application/json
16
+ User-Agent:
17
+ - Faraday v0.9.2
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ X-Frame-Options:
26
+ - SAMEORIGIN
27
+ X-Xss-Protection:
28
+ - 1; mode=block
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ X-Api-Version:
32
+ - '1'
33
+ Content-Type:
34
+ - application/vnd.datacentred.api+json; charset=utf-8
35
+ Etag:
36
+ - W/"a49ddef61fd02a4859e54c61f0d506bb"
37
+ Cache-Control:
38
+ - max-age=0, private, must-revalidate
39
+ X-Request-Id:
40
+ - 655310e5-7e32-4111-bc58-0969fba85ef8
41
+ X-Runtime:
42
+ - '0.101663'
43
+ Transfer-Encoding:
44
+ - chunked
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"users":[{"id":"06eacbafda355a927f50f304db3af132","email":"foo@bar.com","first_name":"Foo","last_name":"Bar","created_at":"2017-07-20T13:06:20Z","updated_at":"2017-07-20T13:06:20Z","links":[{"href":"https://my.datacentred.io/api/users/06eacbafda355a927f50f304db3af132","rel":"self"},{"href":"https://my.datacentred.io/api/schemas/user","rel":"schema"}]}]}'
48
+ http_version:
49
+ recorded_at: Tue, 05 Sep 2017 15:17:43 GMT
50
+ - request:
51
+ method: put
52
+ uri: https://my.datacentred.io/api/projects/project_id1/users/user_id
53
+ body:
54
+ encoding: UTF-8
55
+ string: ''
56
+ headers:
57
+ Accept:
58
+ - application/vnd.datacentred.api+json; version=1
59
+ Authorization:
60
+ - Token token=e9d2d4cd37adf1634e2a65b9e18a8fcb:821fac118e7675f28fa42ab79ace57de
61
+ Content-Type:
62
+ - application/json
63
+ User-Agent:
64
+ - Faraday v0.9.2
65
+ Content-Length:
66
+ - '0'
67
+ Accept-Encoding:
68
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
69
+ response:
70
+ status:
71
+ code: 204
72
+ message: No Content
73
+ headers:
74
+ X-Frame-Options:
75
+ - SAMEORIGIN
76
+ X-Xss-Protection:
77
+ - 1; mode=block
78
+ X-Content-Type-Options:
79
+ - nosniff
80
+ X-Api-Version:
81
+ - '1'
82
+ Cache-Control:
83
+ - no-cache
84
+ X-Request-Id:
85
+ - 04084f5b-0ede-46d5-84a0-a546e1db7507
86
+ X-Runtime:
87
+ - '0.143236'
88
+ body:
89
+ encoding: UTF-8
90
+ string: ''
91
+ http_version:
92
+ recorded_at: Tue, 05 Sep 2017 15:17:43 GMT
93
+ - request:
94
+ method: get
95
+ uri: https://my.datacentred.io/api/projects/project_id1/users
96
+ body:
97
+ encoding: US-ASCII
98
+ string: ''
99
+ headers:
100
+ Accept:
101
+ - application/vnd.datacentred.api+json; version=1
102
+ Authorization:
103
+ - Token token=e9d2d4cd37adf1634e2a65b9e18a8fcb:821fac118e7675f28fa42ab79ace57de
104
+ Content-Type:
105
+ - application/json
106
+ User-Agent:
107
+ - Faraday v0.9.2
108
+ Accept-Encoding:
109
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
110
+ response:
111
+ status:
112
+ code: 200
113
+ message: OK
114
+ headers:
115
+ X-Frame-Options:
116
+ - SAMEORIGIN
117
+ X-Xss-Protection:
118
+ - 1; mode=block
119
+ X-Content-Type-Options:
120
+ - nosniff
121
+ X-Api-Version:
122
+ - '1'
123
+ Content-Type:
124
+ - application/vnd.datacentred.api+json; charset=utf-8
125
+ Etag:
126
+ - W/"89f589a53690f0175b3b8ee53ccdc4b0"
127
+ Cache-Control:
128
+ - max-age=0, private, must-revalidate
129
+ X-Request-Id:
130
+ - 8e3f4a76-6122-4512-9d15-25fb027180f4
131
+ X-Runtime:
132
+ - '0.100477'
133
+ Transfer-Encoding:
134
+ - chunked
135
+ body:
136
+ encoding: UTF-8
137
+ string: '{"users":[{"id":"user_id","email":"foo1@bar.com","first_name":"Foo1","last_name":"Bar","created_at":"2017-07-20T13:06:20Z","updated_at":"2017-07-20T13:06:20Z","links":[{"href":"https://my.datacentred.io/api/users/user_id","rel":"self"},{"href":"https://my.datacentred.io/api/schemas/user","rel":"schema"}]},{"id":"06eacbafda355a927f50f304db3af132","email":"foo@bar.com","first_name":"Foo","last_name":"Bar","created_at":"2017-07-20T13:06:20Z","updated_at":"2017-07-20T13:06:20Z","links":[{"href":"https://my.datacentred.io/api/users/06eacbafda355a927f50f304db3af132","rel":"self"},{"href":"https://my.datacentred.io/api/schemas/user","rel":"schema"}]}]}'
138
+ http_version:
139
+ recorded_at: Tue, 05 Sep 2017 15:17:43 GMT
140
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,187 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://my.datacentred.io/api/roles
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"role":{"name":"New Role"}}'
9
+ headers:
10
+ Accept:
11
+ - application/vnd.datacentred.api+json; version=1
12
+ Authorization:
13
+ - Token token=access_key:secret_key
14
+ Content-Type:
15
+ - application/json
16
+ User-Agent:
17
+ - Faraday v0.9.2
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ response:
21
+ status:
22
+ code: 201
23
+ message: Created
24
+ headers:
25
+ X-Frame-Options:
26
+ - SAMEORIGIN
27
+ X-Xss-Protection:
28
+ - 1; mode=block
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ X-Api-Version:
32
+ - '1'
33
+ Content-Type:
34
+ - application/vnd.datacentred.api+json; charset=utf-8
35
+ Etag:
36
+ - W/"3b9b0331bd0342e07befc2763cc250a7"
37
+ Cache-Control:
38
+ - max-age=0, private, must-revalidate
39
+ X-Request-Id:
40
+ - 9b223a95-6742-48ea-90c9-6886eb7c4567
41
+ X-Runtime:
42
+ - '0.143252'
43
+ Transfer-Encoding:
44
+ - chunked
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"role":{"id":"46b76828-2e99-41fa-b935-668b14d2c850","name":"New Role","admin":false,"permissions":[],"created_at":"2017-09-06T09:25:46Z","updated_at":"2017-09-06T09:25:46Z","links":[{"href":"https://my.datacentred.io/api/roles/46b76828-2e99-41fa-b935-668b14d2c850","rel":"self"},{"href":"https://my.datacentred.io/api/schemas/role","rel":"schema"}]}}'
48
+ http_version:
49
+ recorded_at: Wed, 06 Sep 2017 09:25:46 GMT
50
+ - request:
51
+ method: get
52
+ uri: https://my.datacentred.io/api/roles/46b76828-2e99-41fa-b935-668b14d2c850/users
53
+ body:
54
+ encoding: US-ASCII
55
+ string: ''
56
+ headers:
57
+ Accept:
58
+ - application/vnd.datacentred.api+json; version=1
59
+ Authorization:
60
+ - Token token=e9d2d4cd37adf1634e2a65b9e18a8fcb:821fac118e7675f28fa42ab79ace57de
61
+ Content-Type:
62
+ - application/json
63
+ User-Agent:
64
+ - Faraday v0.9.2
65
+ Accept-Encoding:
66
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
67
+ response:
68
+ status:
69
+ code: 200
70
+ message: OK
71
+ headers:
72
+ X-Frame-Options:
73
+ - SAMEORIGIN
74
+ X-Xss-Protection:
75
+ - 1; mode=block
76
+ X-Content-Type-Options:
77
+ - nosniff
78
+ X-Api-Version:
79
+ - '1'
80
+ Content-Type:
81
+ - application/vnd.datacentred.api+json; charset=utf-8
82
+ Etag:
83
+ - W/"adac7b84dc3b7394d8385aa0c65fe27a"
84
+ Cache-Control:
85
+ - max-age=0, private, must-revalidate
86
+ X-Request-Id:
87
+ - 62466fe5-3c54-4562-ab14-c70d4cd5208e
88
+ X-Runtime:
89
+ - '0.105758'
90
+ Transfer-Encoding:
91
+ - chunked
92
+ body:
93
+ encoding: UTF-8
94
+ string: '{"users":[]}'
95
+ http_version:
96
+ recorded_at: Wed, 06 Sep 2017 09:25:46 GMT
97
+ - request:
98
+ method: put
99
+ uri: https://my.datacentred.io/api/roles/46b76828-2e99-41fa-b935-668b14d2c850/users/06eacbafda355a927f50f304db3af132
100
+ body:
101
+ encoding: UTF-8
102
+ string: ''
103
+ headers:
104
+ Accept:
105
+ - application/vnd.datacentred.api+json; version=1
106
+ Authorization:
107
+ - Token token=e9d2d4cd37adf1634e2a65b9e18a8fcb:821fac118e7675f28fa42ab79ace57de
108
+ Content-Type:
109
+ - application/json
110
+ User-Agent:
111
+ - Faraday v0.9.2
112
+ Content-Length:
113
+ - '0'
114
+ Accept-Encoding:
115
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
116
+ response:
117
+ status:
118
+ code: 204
119
+ message: No Content
120
+ headers:
121
+ X-Frame-Options:
122
+ - SAMEORIGIN
123
+ X-Xss-Protection:
124
+ - 1; mode=block
125
+ X-Content-Type-Options:
126
+ - nosniff
127
+ X-Api-Version:
128
+ - '1'
129
+ Cache-Control:
130
+ - no-cache
131
+ X-Request-Id:
132
+ - 98907f33-6b49-4c4a-9605-cfb1f1dab1c1
133
+ X-Runtime:
134
+ - '0.112941'
135
+ body:
136
+ encoding: UTF-8
137
+ string: ''
138
+ http_version:
139
+ recorded_at: Wed, 06 Sep 2017 09:25:47 GMT
140
+ - request:
141
+ method: get
142
+ uri: https://my.datacentred.io/api/roles/46b76828-2e99-41fa-b935-668b14d2c850/users
143
+ body:
144
+ encoding: US-ASCII
145
+ string: ''
146
+ headers:
147
+ Accept:
148
+ - application/vnd.datacentred.api+json; version=1
149
+ Authorization:
150
+ - Token token=e9d2d4cd37adf1634e2a65b9e18a8fcb:821fac118e7675f28fa42ab79ace57de
151
+ Content-Type:
152
+ - application/json
153
+ User-Agent:
154
+ - Faraday v0.9.2
155
+ Accept-Encoding:
156
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
157
+ response:
158
+ status:
159
+ code: 200
160
+ message: OK
161
+ headers:
162
+ X-Frame-Options:
163
+ - SAMEORIGIN
164
+ X-Xss-Protection:
165
+ - 1; mode=block
166
+ X-Content-Type-Options:
167
+ - nosniff
168
+ X-Api-Version:
169
+ - '1'
170
+ Content-Type:
171
+ - application/vnd.datacentred.api+json; charset=utf-8
172
+ Etag:
173
+ - W/"a49ddef61fd02a4859e54c61f0d506bb"
174
+ Cache-Control:
175
+ - max-age=0, private, must-revalidate
176
+ X-Request-Id:
177
+ - d0c48633-f6ee-45c6-9501-f8e78ef89e4f
178
+ X-Runtime:
179
+ - '0.097074'
180
+ Transfer-Encoding:
181
+ - chunked
182
+ body:
183
+ encoding: UTF-8
184
+ string: '{"users":[{"id":"06eacbafda355a927f50f304db3af132","email":"eugenia.grieff@datacentred.co.uk","first_name":"Eugenia","last_name":"Grieff","created_at":"2017-07-20T13:06:20Z","updated_at":"2017-07-20T13:06:20Z","links":[{"href":"https://my.datacentred.io/api/users/06eacbafda355a927f50f304db3af132","rel":"self"},{"href":"https://my.datacentred.io/api/schemas/user","rel":"schema"}]}]}'
185
+ http_version:
186
+ recorded_at: Wed, 06 Sep 2017 09:25:47 GMT
187
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,58 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://my.datacentred.io/api/projects
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"project":{"name":"test_new_project"}}'
9
+ headers:
10
+ Accept:
11
+ - application/vnd.datacentred.api+json; version=1
12
+ Authorization:
13
+ - Token token=access_key:secret_key
14
+ Content-Type:
15
+ - application/json
16
+ User-Agent:
17
+ - Faraday v0.9.2
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ response:
21
+ status:
22
+ code: 201
23
+ message: Created
24
+ headers:
25
+ Server:
26
+ - nginx/1.10.3
27
+ Date:
28
+ - Tue, 29 Aug 2017 15:30:20 GMT
29
+ Content-Type:
30
+ - application/vnd.datacentred.api+json; charset=utf-8
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Connection:
34
+ - keep-alive
35
+ X-Frame-Options:
36
+ - SAMEORIGIN
37
+ X-Xss-Protection:
38
+ - 1; mode=block
39
+ X-Content-Type-Options:
40
+ - nosniff
41
+ X-Api-Version:
42
+ - '1'
43
+ Etag:
44
+ - W/"bcf2e37842911b0835ebdbd785272265"
45
+ Cache-Control:
46
+ - max-age=0, private, must-revalidate
47
+ X-Request-Id:
48
+ - 5771e02d-fa57-4e89-9798-7cd95bb0d318
49
+ X-Runtime:
50
+ - '1.274402'
51
+ Strict-Transport-Security:
52
+ - max-age=31536000; includeSubdomains; preload
53
+ body:
54
+ encoding: UTF-8
55
+ string: '{"project":{"id":"37ebf1100ef64599bdfc3f19b913d82c","name":"test_new_project","created_at":"2017-08-29T15:30:20Z","updated_at":"2017-08-29T15:30:20Z","quota_set":{"compute":{"instances":5,"cores":5,"ram":10240},"volume":{"volumes":4,"snapshots":4,"gigabytes":40},"network":{"floatingip":1,"router":1,"security_group_rule":100,"security_group":10,"network":10,"port":10,"subnet":10,"pool":10,"vip":10}},"links":[{"href":"https://my.datacentred.io/api/projects/37ebf1100ef64599bdfc3f19b913d82c","rel":"self"},{"href":"https://my.datacentred.io/api/schemas/project","rel":"schema"}]}}'
56
+ http_version:
57
+ recorded_at: Tue, 29 Aug 2017 15:30:20 GMT
58
+ recorded_with: VCR 2.8.0