groupdocs 1.5.1 → 1.5.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## v1.5.2
2
+
3
+ **Changes**
4
+
5
+ * Do not replace `{{client_id}}` if `:sign` is `false`.
6
+
1
7
  ## v1.5.1
2
8
 
3
9
  **New**
@@ -1,5 +1,5 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
 
3
- gem 'sinatra'
3
+ gem 'sinatra', '1.3.6'
4
4
  gem 'groupdocs', "1.2.10"
5
5
  gem 'haml'
@@ -30,15 +30,6 @@ module GroupDocs
30
30
  options[:path].gsub!(%r(//+), '/')
31
31
  end
32
32
 
33
- #
34
- # Parses path replacing {{client_id}} with real one.
35
- #
36
- # @api private
37
- #
38
- def parse_path
39
- options[:path].sub!(/\{\{client_id\}\}/, client_id)
40
- end
41
-
42
33
  #
43
34
  # URL encodes path.
44
35
  #
@@ -52,6 +43,15 @@ module GroupDocs
52
43
  options[:path].gsub!('+', '%2B')
53
44
  end
54
45
 
46
+ #
47
+ # Parses path replacing {{client_id}} with real one.
48
+ #
49
+ # @api private
50
+ #
51
+ def replace_client_id
52
+ options[:path].sub!(/\{\{client_id\}\}/, client_id)
53
+ end
54
+
55
55
  #
56
56
  # Adds signature to path.
57
57
  #
@@ -55,9 +55,11 @@ module GroupDocs
55
55
  #
56
56
  def prepare_and_sign_url
57
57
  unless @signed
58
- parse_path
59
58
  url_encode_path
60
- sign_url if @options[:sign]
59
+ if @options[:sign]
60
+ replace_client_id
61
+ sign_url
62
+ end
61
63
  @signed = true
62
64
  end
63
65
 
@@ -22,11 +22,15 @@ module GroupDocs
22
22
  # @example Upload file with description
23
23
  # GroupDocs::Storage::File.upload!('resume.pdf', description: 'Resume')
24
24
  #
25
+ # @example Upload file with callback URL
26
+ # GroupDocs::Storage::File.upload!('resume.pdf', callbackUrl: 'http://google.com')
27
+ #
25
28
  # @param [String] filepath Path to file to be uploaded
26
29
  # @param [Hash] options
27
30
  # @option options [String] path Folder path to upload to
28
31
  # @option options [String] name Name of file to be renamed
29
32
  # @option options [String] description File description
33
+ # @option options [String] callbackUrl will be called after file is uploaded
30
34
  # @param [Hash] access Access credentials
31
35
  # @option access [String] :client_id
32
36
  # @option access [String] :private_key
@@ -60,10 +60,39 @@ module GroupDocs
60
60
  end
61
61
 
62
62
  #
63
- # Generates new active user embed key.
63
+ # Delete account user.
64
64
  #
65
65
  # @example
66
- # GroupDocs::User.embed_key!('test-area')
66
+ # user = GroupDocs::User.get!
67
+ # GroupDocs::User.delete!(user.users!.last)
68
+ # #=> "826e3b54e009ce51"
69
+ #
70
+ # @param [GroupDocs::User] user
71
+ # @param [Hash] access Access credentials
72
+ # @option access [String] :client_id
73
+ # @option access [String] :private_key
74
+ # @return [String]
75
+ #
76
+ # @raise [ArgumentError] if user is not GroupDocs::User object
77
+ #
78
+ def self.delete!(user, access = {})
79
+ user.is_a?(GroupDocs::User) or raise ArgumentError,
80
+ "User should be GroupDocs::User object, received: #{user.inspect}"
81
+
82
+ json = Api::Request.new do |request|
83
+ request[:access] = access
84
+ request[:method] = :DELETE
85
+ request[:path] = "/mgmt/{{client_id}}/account/users/#{user.primary_email}"
86
+ end.execute!
87
+
88
+ json[:guid]
89
+ end
90
+
91
+ #
92
+ # Generates new user embed key.
93
+ #
94
+ # @example
95
+ # GroupDocs::User.generate_embed_key!('test-area')
67
96
  # #=> "60a06ef8f23a49cf807977f1444fbdd8"
68
97
  #
69
98
  # @param [String] area
@@ -72,7 +101,7 @@ module GroupDocs
72
101
  # @option access [String] :private_key
73
102
  # @return [String]
74
103
  #
75
- def self.embed_key!(area, access = {})
104
+ def self.generate_embed_key!(area, access = {})
76
105
  json = Api::Request.new do |request|
77
106
  request[:access] = access
78
107
  request[:method] = :GET
@@ -82,6 +111,52 @@ module GroupDocs
82
111
  json[:key][:guid]
83
112
  end
84
113
 
114
+ #
115
+ # Get user embed key. Generate new embed key if area not exists.
116
+ #
117
+ # @example
118
+ # GroupDocs::User.get_embed_key!('test-area')
119
+ # #=> "60a06ef8f23a49cf807977f1444fbdd8"
120
+ #
121
+ # @param [String] area
122
+ # @param [Hash] access Access credentials
123
+ # @option access [String] :client_id
124
+ # @option access [String] :private_key
125
+ # @return [String]
126
+ #
127
+ def self.get_embed_key!(area, access = {})
128
+ json = Api::Request.new do |request|
129
+ request[:access] = access
130
+ request[:method] = :GET
131
+ request[:path] = "/mgmt/{{client_id}}/embedkey/#{area}"
132
+ end.execute!
133
+
134
+ json[:key][:guid]
135
+ end
136
+
137
+ #
138
+ # Get area name by embed key.
139
+ #
140
+ # @example
141
+ # GroupDocs::User.area!('60a06eg8f23a49cf807977f1444fbdd8')
142
+ # #=> "test-area"
143
+ #
144
+ # @param [String] embed_key
145
+ # @param [Hash] access Access credentials
146
+ # @option access [String] :client_id
147
+ # @option access [String] :private_key
148
+ # @return [String]
149
+ #
150
+ def self.area!(embed_key, access = {})
151
+ json = Api::Request.new do |request|
152
+ request[:access] = access
153
+ request[:method] = :GET
154
+ request[:path] = "/mgmt/{{client_id}}/embedkey/guid/#{embed_key}"
155
+ end.execute!
156
+
157
+ json[:key][:area]
158
+ end
159
+
85
160
  #
86
161
  # Returns an array of storage providers.
87
162
  #
@@ -107,6 +182,27 @@ module GroupDocs
107
182
  end
108
183
  end
109
184
 
185
+ #
186
+ # Logins user using user name and password.
187
+ #
188
+ # @example
189
+ # user = GroupDocs::User.login!('doe@john.com', 'password')
190
+ # user.first_name
191
+ # #=> "John"
192
+ #
193
+ # @return [GroupDocs::User]
194
+ #
195
+ def self.login!(email, password)
196
+ json = Api::Request.new do |request|
197
+ request[:sign] = false
198
+ request[:method] = :POST
199
+ request[:path] = "/shared/users/#{email}/logins"
200
+ request[:request_body] = password
201
+ end.execute!
202
+
203
+ new(json[:user])
204
+ end
205
+
110
206
  # @attr [Integer] id
111
207
  attr_accessor :id
112
208
  # @attr [String] guid
@@ -1,3 +1,3 @@
1
1
  module GroupDocs
2
- VERSION = '1.5.1'
2
+ VERSION = '1.5.2'
3
3
  end # GroupDocs
@@ -34,11 +34,11 @@ describe GroupDocs::Api::Helpers::URL do
34
34
  end
35
35
  end
36
36
 
37
- describe '#parse_path' do
37
+ describe '#replace_client_id' do
38
38
  it 'replaces {{client_id}} with real client ID' do
39
39
  subject.options[:path] = '/doc/{{client_id}}/files/123'
40
40
  subject.should_receive(:client_id).and_return('real_client_id')
41
- subject.send(:parse_path)
41
+ subject.send(:replace_client_id)
42
42
  subject.options[:path].should == '/doc/real_client_id/files/123'
43
43
  end
44
44
  end
@@ -38,13 +38,19 @@ describe GroupDocs::Api::Request do
38
38
  end
39
39
 
40
40
  describe '#prepare_and_sign_url' do
41
- it 'parses path' do
42
- subject.should_receive(:parse_path)
41
+ it 'URL encodes path' do
42
+ subject.should_receive(:url_encode_path)
43
43
  subject.prepare_and_sign_url
44
44
  end
45
45
 
46
- it 'URL encodes path' do
47
- subject.should_receive(:url_encode_path)
46
+ it 'replaces client identifier path' do
47
+ subject.should_receive(:replace_client_id)
48
+ subject.prepare_and_sign_url
49
+ end
50
+
51
+ it 'does not replace client identifier path' do
52
+ subject.options[:sign] = false
53
+ subject.should_not_receive(:replace_client_id)
48
54
  subject.prepare_and_sign_url
49
55
  end
50
56
 
@@ -42,20 +42,73 @@ describe GroupDocs::User do
42
42
  end
43
43
  end
44
44
 
45
- describe '.embed_key!' do
45
+ describe '.delete!' do
46
+ before(:each) do
47
+ mock_api_server(load_json('delete_account'))
48
+ end
49
+
50
+ let!(:user) { GroupDocs::User.new }
51
+
52
+ it 'accepts access credentials hash' do
53
+ lambda do
54
+ described_class.delete!(user, :client_id => 'client_id', :private_key => 'private_key')
55
+ end.should_not raise_error(ArgumentError)
56
+ end
57
+
58
+ it 'raises error if user is not an instance of GroupDocs::User' do
59
+ lambda { described_class.delete!('user') }.should raise_error(ArgumentError)
60
+ end
61
+
62
+ it 'returns user guid' do
63
+ described_class.delete!(user).should be_a(String)
64
+ end
65
+ end
66
+
67
+ describe '.generate_embed_key!' do
46
68
  before(:each) do
47
69
  mock_api_server(load_json('user_embed_key'))
48
70
  end
49
71
 
50
72
  it 'accepts access credentials hash' do
51
73
  lambda do
52
- described_class.embed_key!('test-area', :client_id => 'client_id', :private_key => 'private_key')
74
+ described_class.generate_embed_key!('test-area', :client_id => 'client_id', :private_key => 'private_key')
53
75
  end.should_not raise_error(ArgumentError)
54
76
  end
55
-
77
+
56
78
  it 'returns new user embed key for defined area' do
57
- result = described_class.embed_key!('test-area')
58
- result.should be_a(String)
79
+ described_class.generate_embed_key!('test-area').should be_a(String)
80
+ end
81
+ end
82
+
83
+ describe '.get_embed_key!' do
84
+ before(:each) do
85
+ mock_api_server(load_json('user_get_embed_key'))
86
+ end
87
+
88
+ it 'accepts access credentials hash' do
89
+ lambda do
90
+ described_class.get_embed_key!('test-area', :client_id => 'client_id', :private_key => 'private_key')
91
+ end.should_not raise_error(ArgumentError)
92
+ end
93
+
94
+ it 'returns user embed key for defined area' do
95
+ described_class.get_embed_key!('test-area').should be_a(String)
96
+ end
97
+ end
98
+
99
+ describe '.area!' do
100
+ before(:each) do
101
+ mock_api_server(load_json('user_area'))
102
+ end
103
+
104
+ it 'accepts access credentials hash' do
105
+ lambda do
106
+ described_class.area!('60a06eg8f23a49cf807977f1444fbdd8', :client_id => 'client_id', :private_key => 'private_key')
107
+ end.should_not raise_error(ArgumentError)
108
+ end
109
+
110
+ it 'returns area name by defined embed key' do
111
+ described_class.area!('60a06eg8f23a49cf807977f1444fbdd8').should be_a(String)
59
112
  end
60
113
  end
61
114
 
@@ -78,6 +131,23 @@ describe GroupDocs::User do
78
131
  end
79
132
  end
80
133
  end
134
+
135
+ describe '.login!' do
136
+ before(:each) do
137
+ mock_api_server(load_json('user_login'))
138
+ end
139
+
140
+ it 'works without access credentials hash' do
141
+ lambda do
142
+ described_class.login!('doe@john.com', 'password')
143
+ end.should_not raise_error(ArgumentError)
144
+ end
145
+
146
+ it 'returns GroupDocs::User object' do
147
+ described_class.login!('doe@john.com', 'password').should be_a(GroupDocs::User)
148
+ end
149
+ end
150
+
81
151
  it { should have_accessor(:id) }
82
152
  it { should have_accessor(:guid) }
83
153
  it { should have_accessor(:nickname) }
@@ -0,0 +1,10 @@
1
+ {
2
+ "result": {
3
+ "id": 525,
4
+ "guid": "822e3b54e009cd52",
5
+ "primary_email": "test_email@email.com"
6
+ },
7
+ "status": "Ok",
8
+ "error_message": null,
9
+ "composedOn": 1367123016312
10
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "result": {
3
+ "key": {
4
+ "user": {
5
+ "nickname": "doe@john.com",
6
+ "firstname": "john",
7
+ "lastname": "doe",
8
+ "pkey": null,
9
+ "pswd_salt": "4b4Na2L2YQFWainXVfKOow==",
10
+ "claimed_id": null,
11
+ "token": "2639d85445430c3d05dc2c085356b9ab59bb156adda0f377be1d092b9402689b",
12
+ "storage": null,
13
+ "photo": null,
14
+ "active": false,
15
+ "trial": null,
16
+ "news_eanbled": false,
17
+ "alerts_eanbled": null,
18
+ "support_eanbled": null,
19
+ "support_email": null,
20
+ "annotation_branded": null,
21
+ "viewer_branded": null,
22
+ "is_real_time_broadcast_enabled": null,
23
+ "is_scroll_broadcast_enabled": null,
24
+ "is_zoom_broadcast_enabled": null,
25
+ "annotation_logo": null,
26
+ "pointer_tool_cursor": null,
27
+ "annotation_header_options": null,
28
+ "is_annotation_navigation_widget_enabled": null,
29
+ "is_annotation_zoom_widget_enabled": null,
30
+ "is_annotation_download_widget_enabled": null,
31
+ "is_annotation_print_widget_enabled": null,
32
+ "is_annotation_help_widget_enabled": null,
33
+ "is_right_panel_enabled": null,
34
+ "is_thumbnails_panel_enabled": null,
35
+ "is_standard_header_always_shown": null,
36
+ "is_toolbar_enabled": null,
37
+ "is_text_annotation_button_enabled": null,
38
+ "is_rectangle_annotation_button_enabled": null,
39
+ "is_point_annotation_button_enabled": null,
40
+ "is_strikeout_annotation_button_enabled": null,
41
+ "is_polyline_annotation_button_enabled": null,
42
+ "is_typewriter_annotation_button_enabled": null,
43
+ "is_watermark_annotation_button_enabled": null,
44
+ "viewer_logo": null,
45
+ "viewer_options": null,
46
+ "is_viewer_navigation_widget_enabled": null,
47
+ "is_viewer_zoom_widget_enabled": null,
48
+ "is_viewer_download_widget_enabled": null,
49
+ "is_viewer_print_widget_enabled": null,
50
+ "is_viewer_help_widget_enabled": null,
51
+ "signedupOn": 1352386502480,
52
+ "signedinOn": 1367051509957,
53
+ "signin_count": 740,
54
+ "roles": null,
55
+ "id": 3320,
56
+ "guid": "b912b34d1621a895",
57
+ "primary_email": "doe@john.com"
58
+ },
59
+ "guid": "5c4f5ac825cc618994e556d4a252b108",
60
+ "area": "test-area",
61
+ "active": true,
62
+ "hit_count": 2
63
+ }
64
+ },
65
+ "status": "Ok",
66
+ "error_message": null,
67
+ "composedOn": 1367054382377
68
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "result": {
3
+ "key": {
4
+ "user": {
5
+ "nickname": "doe@john.com",
6
+ "firstname": "john",
7
+ "lastname": "doe",
8
+ "pkey": null,
9
+ "pswd_salt": "4b4Na2L2YQFWainXVfKOow==",
10
+ "claimed_id": null,
11
+ "token": "2639d8544d430c3d05dc2c085556b9ab59bb156adda0f377be1d092b9402689b",
12
+ "storage": null,
13
+ "photo": null,
14
+ "active": false,
15
+ "trial": null,
16
+ "news_eanbled": false,
17
+ "alerts_eanbled": null,
18
+ "support_eanbled": null,
19
+ "support_email": null,
20
+ "annotation_branded": null,
21
+ "viewer_branded": null,
22
+ "is_real_time_broadcast_enabled": null,
23
+ "is_scroll_broadcast_enabled": null,
24
+ "is_zoom_broadcast_enabled": null,
25
+ "annotation_logo": null,
26
+ "pointer_tool_cursor": null,
27
+ "annotation_header_options": null,
28
+ "is_annotation_navigation_widget_enabled": null,
29
+ "is_annotation_zoom_widget_enabled": null,
30
+ "is_annotation_download_widget_enabled": null,
31
+ "is_annotation_print_widget_enabled": null,
32
+ "is_annotation_help_widget_enabled": null,
33
+ "is_right_panel_enabled": null,
34
+ "is_thumbnails_panel_enabled": null,
35
+ "is_standard_header_always_shown": null,
36
+ "is_toolbar_enabled": null,
37
+ "is_text_annotation_button_enabled": null,
38
+ "is_rectangle_annotation_button_enabled": null,
39
+ "is_point_annotation_button_enabled": null,
40
+ "is_strikeout_annotation_button_enabled": null,
41
+ "is_polyline_annotation_button_enabled": null,
42
+ "is_typewriter_annotation_button_enabled": null,
43
+ "is_watermark_annotation_button_enabled": null,
44
+ "viewer_logo": null,
45
+ "viewer_options": null,
46
+ "is_viewer_navigation_widget_enabled": null,
47
+ "is_viewer_zoom_widget_enabled": null,
48
+ "is_viewer_download_widget_enabled": null,
49
+ "is_viewer_print_widget_enabled": null,
50
+ "is_viewer_help_widget_enabled": null,
51
+ "signedupOn": 1352386502480,
52
+ "signedinOn": 1367051509957,
53
+ "signin_count": 740,
54
+ "roles": null,
55
+ "id": 3320,
56
+ "guid": "b912b34d1621a895",
57
+ "primary_email": "doe@john.com"
58
+ },
59
+ "guid": "5c3f5ac825cc418994e546d4e252b108",
60
+ "area": "test-area",
61
+ "active": true,
62
+ "hit_count": 2
63
+ }
64
+ },
65
+ "status": "Ok",
66
+ "error_message": null,
67
+ "composedOn": 1367064373330
68
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "result": {
3
+ "user": {
4
+ "nickname": "doe@john.com",
5
+ "firstname": "John",
6
+ "lastname": "Doe",
7
+ "pkey": "d21408c4a34422e7a711f6fb727b0299",
8
+ "pswd_salt": "P95rsFQTh+Tw2t98L/MRIw==",
9
+ "claimed_id": null,
10
+ "token": "c28a222f08f9baf1f2718257e81a64b013544a9f66b8f63dd5625872fcfd9b14",
11
+ "storage": null,
12
+ "photo": null,
13
+ "active": true,
14
+ "trial": true,
15
+ "news_eanbled": false,
16
+ "alerts_eanbled": null,
17
+ "support_eanbled": null,
18
+ "support_email": null,
19
+ "annotation_branded": null,
20
+ "viewer_branded": null,
21
+ "is_real_time_broadcast_enabled": null,
22
+ "is_scroll_broadcast_enabled": null,
23
+ "is_zoom_broadcast_enabled": null,
24
+ "annotation_logo": null,
25
+ "pointer_tool_cursor": null,
26
+ "annotation_header_options": null,
27
+ "is_annotation_navigation_widget_enabled": null,
28
+ "is_annotation_zoom_widget_enabled": null,
29
+ "is_annotation_download_widget_enabled": null,
30
+ "is_annotation_print_widget_enabled": null,
31
+ "is_annotation_help_widget_enabled": null,
32
+ "is_right_panel_enabled": null,
33
+ "is_thumbnails_panel_enabled": null,
34
+ "is_standard_header_always_shown": null,
35
+ "is_toolbar_enabled": null,
36
+ "is_text_annotation_button_enabled": null,
37
+ "is_rectangle_annotation_button_enabled": null,
38
+ "is_point_annotation_button_enabled": null,
39
+ "is_strikeout_annotation_button_enabled": null,
40
+ "is_polyline_annotation_button_enabled": null,
41
+ "is_typewriter_annotation_button_enabled": null,
42
+ "is_watermark_annotation_button_enabled": null,
43
+ "is_annotation_document_name_shown": null,
44
+ "viewer_logo": null,
45
+ "viewer_options": null,
46
+ "is_viewer_navigation_widget_enabled": null,
47
+ "is_viewer_zoom_widget_enabled": null,
48
+ "is_viewer_download_widget_enabled": null,
49
+ "is_viewer_print_widget_enabled": null,
50
+ "is_viewer_help_widget_enabled": null,
51
+ "is_viewer_document_name_shown": null,
52
+ "signedupOn": 1355129997970,
53
+ "signedinOn": 1370202497952,
54
+ "signin_count": 15,
55
+ "roles": null,
56
+ "signature_watermark_enabled": true,
57
+ "signature_desktop_notifications": true,
58
+ "webhook_notification_retries": null,
59
+ "webhook_notification_failed_recipients": null,
60
+ "id": 4062,
61
+ "guid": "9c7abce33263624e",
62
+ "primary_email": "doe@john.com"
63
+ }
64
+ },
65
+ "status": "Ok",
66
+ "error_message": null,
67
+ "composedOn": 1370202497952
68
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: groupdocs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-31 00:00:00.000000000 Z
12
+ date: 2013-06-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
@@ -417,6 +417,7 @@ files:
417
417
  - spec/support/json/datasource_get.json
418
418
  - spec/support/json/datasource_remove.json
419
419
  - spec/support/json/datasource_update.json
420
+ - spec/support/json/delete_account.json
420
421
  - spec/support/json/document_access_info_get.json
421
422
  - spec/support/json/document_convert.json
422
423
  - spec/support/json/document_datasource.json
@@ -486,7 +487,10 @@ files:
486
487
  - spec/support/json/templates_all.json
487
488
  - spec/support/json/templates_get.json
488
489
  - spec/support/json/update_account.json
490
+ - spec/support/json/user_area.json
489
491
  - spec/support/json/user_embed_key.json
492
+ - spec/support/json/user_get_embed_key.json
493
+ - spec/support/json/user_login.json
490
494
  - spec/support/json/user_profile_get.json
491
495
  - spec/support/json/user_providers.json
492
496
  - spec/support/json/user_roles.json
@@ -514,7 +518,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
514
518
  version: '0'
515
519
  segments:
516
520
  - 0
517
- hash: -2320270531511539670
521
+ hash: -387405820343720388
518
522
  required_rubygems_version: !ruby/object:Gem::Requirement
519
523
  none: false
520
524
  requirements:
@@ -523,7 +527,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
523
527
  version: '0'
524
528
  segments:
525
529
  - 0
526
- hash: -2320270531511539670
530
+ hash: -387405820343720388
527
531
  requirements: []
528
532
  rubyforge_project:
529
533
  rubygems_version: 1.8.23
@@ -607,6 +611,7 @@ test_files:
607
611
  - spec/support/json/datasource_get.json
608
612
  - spec/support/json/datasource_remove.json
609
613
  - spec/support/json/datasource_update.json
614
+ - spec/support/json/delete_account.json
610
615
  - spec/support/json/document_access_info_get.json
611
616
  - spec/support/json/document_convert.json
612
617
  - spec/support/json/document_datasource.json
@@ -676,7 +681,10 @@ test_files:
676
681
  - spec/support/json/templates_all.json
677
682
  - spec/support/json/templates_get.json
678
683
  - spec/support/json/update_account.json
684
+ - spec/support/json/user_area.json
679
685
  - spec/support/json/user_embed_key.json
686
+ - spec/support/json/user_get_embed_key.json
687
+ - spec/support/json/user_login.json
680
688
  - spec/support/json/user_profile_get.json
681
689
  - spec/support/json/user_providers.json
682
690
  - spec/support/json/user_roles.json