crowdin-api 1.2.0 → 1.4.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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +102 -43
  3. data/README.md +37 -6
  4. data/bin/crowdin-console +1 -1
  5. data/crowdin-api.gemspec +1 -2
  6. data/lib/crowdin-api/api_resources/bundles.rb +81 -0
  7. data/lib/crowdin-api/{api-resources → api_resources}/dictionaries.rb +8 -10
  8. data/lib/crowdin-api/{api-resources → api_resources}/distributions.rb +25 -32
  9. data/lib/crowdin-api/{api-resources → api_resources}/glossaries.rb +64 -82
  10. data/lib/crowdin-api/{api-resources → api_resources}/labels.rb +28 -47
  11. data/lib/crowdin-api/api_resources/languages.rb +61 -0
  12. data/lib/crowdin-api/api_resources/machine_translation_engines.rb +79 -0
  13. data/lib/crowdin-api/api_resources/projects.rb +124 -0
  14. data/lib/crowdin-api/api_resources/reports.rb +120 -0
  15. data/lib/crowdin-api/{api-resources → api_resources}/screenshots.rb +47 -61
  16. data/lib/crowdin-api/{api-resources → api_resources}/source_files.rb +68 -131
  17. data/lib/crowdin-api/{api-resources → api_resources}/source_strings.rb +19 -24
  18. data/lib/crowdin-api/api_resources/storages.rb +54 -0
  19. data/lib/crowdin-api/{api-resources → api_resources}/string_comments.rb +18 -23
  20. data/lib/crowdin-api/{api-resources → api_resources}/string_translations.rb +64 -91
  21. data/lib/crowdin-api/{api-resources → api_resources}/tasks.rb +30 -41
  22. data/lib/crowdin-api/api_resources/teams.rb +135 -0
  23. data/lib/crowdin-api/{api-resources → api_resources}/translation_memory.rb +38 -52
  24. data/lib/crowdin-api/{api-resources → api_resources}/translation_status.rb +24 -30
  25. data/lib/crowdin-api/{api-resources → api_resources}/translations.rb +41 -58
  26. data/lib/crowdin-api/api_resources/users.rb +161 -0
  27. data/lib/crowdin-api/api_resources/vendors.rb +21 -0
  28. data/lib/crowdin-api/{api-resources → api_resources}/webhooks.rb +19 -24
  29. data/lib/crowdin-api/api_resources/workflows.rb +59 -0
  30. data/lib/crowdin-api/client/client.rb +134 -39
  31. data/lib/crowdin-api/client/configuration.rb +12 -12
  32. data/lib/crowdin-api/client/version.rb +1 -1
  33. data/lib/crowdin-api/core/errors.rb +1 -0
  34. data/lib/crowdin-api/core/errors_raisers.rb +1 -1
  35. data/lib/crowdin-api/core/fetch_all_extensions.rb +14 -0
  36. data/lib/crowdin-api/core/request.rb +50 -90
  37. data/lib/crowdin-api/core/send_request.rb +67 -0
  38. data/lib/crowdin-api.rb +18 -24
  39. data/spec/api_resources/bundles_spec.rb +61 -0
  40. data/spec/api_resources/dictionaries_spec.rb +23 -0
  41. data/spec/api_resources/distributions_spec.rb +71 -0
  42. data/spec/api_resources/glossaries_spec.rb +167 -0
  43. data/spec/api_resources/labels_spec.rb +71 -0
  44. data/spec/api_resources/languages_spec.rb +51 -0
  45. data/spec/api_resources/machine_translation_engines_spec.rb +63 -0
  46. data/spec/api_resources/projects_spec.rb +215 -0
  47. data/spec/api_resources/reports_spec.rb +95 -0
  48. data/spec/api_resources/screenshots_spec.rb +134 -0
  49. data/spec/api_resources/source_files_spec.rb +184 -0
  50. data/spec/api_resources/source_strings_spec.rb +51 -0
  51. data/spec/api_resources/storages_spec.rb +41 -0
  52. data/spec/api_resources/string_comments_spec.rb +51 -0
  53. data/spec/api_resources/string_translations_spec.rb +141 -0
  54. data/spec/api_resources/tasks_spec.rb +79 -0
  55. data/spec/api_resources/teams_spec.rb +100 -0
  56. data/spec/api_resources/translation_memory_spec.rb +114 -0
  57. data/spec/api_resources/translation_status_spec.rb +61 -0
  58. data/spec/api_resources/translations_spec.rb +107 -0
  59. data/spec/api_resources/users_spec.rb +117 -0
  60. data/spec/api_resources/vendors_spec.rb +13 -0
  61. data/spec/api_resources/webhooks_spec.rb +51 -0
  62. data/spec/api_resources/workflows_spec.rb +41 -0
  63. data/spec/spec_helper.rb +23 -2
  64. data/spec/unit/client_spec.rb +85 -0
  65. metadata +67 -43
  66. data/bin/setup +0 -6
  67. data/lib/crowdin-api/api-resources/languages.rb +0 -82
  68. data/lib/crowdin-api/api-resources/machine_translation_engines.rb +0 -74
  69. data/lib/crowdin-api/api-resources/projects.rb +0 -148
  70. data/lib/crowdin-api/api-resources/reports.rb +0 -138
  71. data/lib/crowdin-api/api-resources/storages.rb +0 -106
  72. data/lib/crowdin-api/api-resources/teams.rb +0 -144
  73. data/lib/crowdin-api/api-resources/users.rb +0 -129
  74. data/lib/crowdin-api/api-resources/vendors.rb +0 -21
  75. data/lib/crowdin-api/api-resources/workflows.rb +0 -62
  76. data/lib/crowdin-api/core/utils.rb +0 -10
  77. data/spec/client/client-instance_spec.rb +0 -14
  78. data/spec/client/configuration-instance_spec.rb +0 -72
@@ -1,129 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Crowdin
4
- module ApiResources
5
- module Users
6
- def get_authenticated_user
7
- request = Web::Request.new(
8
- self,
9
- :get,
10
- '/user'
11
- )
12
-
13
- request.perform
14
- end
15
-
16
- def list_project_members(query = {}, project_id = config.project_id)
17
- project_id || raise_project_id_is_required_error
18
-
19
- request = Web::Request.new(
20
- self,
21
- :get,
22
- "/projects/#{project_id}/members",
23
- query
24
- )
25
-
26
- request.perform
27
- end
28
-
29
- def get_member_info(member_id = nil, project_id = config.project_id)
30
- member_id || raise_parameter_is_required_error(:member_id)
31
- project_id || raise_project_id_is_required_error
32
-
33
- request = Web::Request.new(
34
- self,
35
- :get,
36
- "/projects/#{project_id}/members/#{member_id}"
37
- )
38
-
39
- request.perform
40
- end
41
-
42
- # -- For Enterprise mode only --
43
-
44
- def add_project_member(query = {}, project_id = config.project_id)
45
- config.enterprise_mode? || raise_only_for_enterprise_mode_error
46
- project_id || raise_project_id_is_required_error
47
-
48
- request = Web::Request.new(
49
- self,
50
- :post,
51
- "/projects/#{project_id}/members",
52
- query
53
- )
54
-
55
- request.perform
56
- end
57
-
58
- def get_project_member_permissions(member_id = nil, project_id = config.project_id)
59
- config.enterprise_mode? || raise_only_for_enterprise_mode_error
60
- member_id || raise_parameter_is_required_error(:member_id)
61
- project_id || raise_project_id_is_required_error
62
-
63
- request = Web::Request.new(
64
- self,
65
- :get,
66
- "/projects/#{project_id}/members/#{member_id}"
67
- )
68
-
69
- request.perform
70
- end
71
-
72
- def replace_project_permissions(member_id = nil, query = {}, project_id = config.project_id)
73
- config.enterprise_mode? || raise_only_for_enterprise_mode_error
74
- member_id || raise_parameter_is_required_error(:member_id)
75
- project_id || raise_project_id_is_required_error
76
-
77
- request = Web::Request.new(
78
- self,
79
- :put,
80
- "/projects/#{project_id}/members/#{member_id}",
81
- query
82
- )
83
-
84
- request.perform
85
- end
86
-
87
- def delete_member_from_project(member_id = nil, query = {}, project_id = config.project_id)
88
- config.enterprise_mode? || raise_only_for_enterprise_mode_error
89
- member_id || raise_parameter_is_required_error(:member_id)
90
- project_id || raise_project_id_is_required_error
91
-
92
- request = Web::Request.new(
93
- self,
94
- :delete,
95
- "/projects/#{project_id}/members/#{member_id}",
96
- query
97
- )
98
-
99
- request.perform
100
- end
101
-
102
- def list_users(query = {})
103
- config.enterprise_mode? || raise_only_for_enterprise_mode_error
104
-
105
- request = Web::Request.new(
106
- self,
107
- :get,
108
- '/users',
109
- query
110
- )
111
-
112
- request.perform
113
- end
114
-
115
- def get_user(user_id = nil)
116
- config.enterprise_mode? || raise_only_for_enterprise_mode_error
117
- user_id || raise_parameter_is_required_error(:user_id)
118
-
119
- request = Web::Request.new(
120
- self,
121
- :get,
122
- "/users/#{user_id}"
123
- )
124
-
125
- request.perform
126
- end
127
- end
128
- end
129
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Crowdin
4
- module ApiResources
5
- # -- For Enterprise mode only --
6
- module Vendors
7
- def list_vendors(query = {})
8
- config.enterprise_mode? || raise_only_for_enterprise_mode_error
9
-
10
- request = Web::Request.new(
11
- self,
12
- :get,
13
- '/vendors',
14
- query
15
- )
16
-
17
- request.perform
18
- end
19
- end
20
- end
21
- end
@@ -1,62 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Crowdin
4
- module ApiResources
5
- # -- For Enterprise mode only --
6
- module Workflows
7
- def list_workflow_steps(query = {}, project_id = config.project_id)
8
- config.enterprise_mode? || raise_only_for_enterprise_mode_error
9
- project_id || raise_project_id_is_required_error
10
-
11
- request = Web::Request.new(
12
- self,
13
- :get,
14
- "/projects/#{project_id}/workflow-steps",
15
- query
16
- )
17
-
18
- request.perform
19
- end
20
-
21
- def get_workflow_step(step_id = nil, project_id = config.project_id)
22
- config.enterprise_mode? || raise_only_for_enterprise_mode_error
23
- step_id || raise_parameter_is_required_error(:step_id)
24
- project_id || raise_project_id_is_required_error
25
-
26
- request = Web::Request.new(
27
- self,
28
- :get,
29
- "/projects/#{project_id}/workflow-steps/#{step_id}"
30
- )
31
-
32
- request.perform
33
- end
34
-
35
- def list_workflow_templates(query = {})
36
- config.enterprise_mode? || raise_only_for_enterprise_mode_error
37
-
38
- request = Web::Request.new(
39
- self,
40
- :get,
41
- '/workflow-templates',
42
- query
43
- )
44
-
45
- request.perform
46
- end
47
-
48
- def get_workflow_template(template_id = nil)
49
- config.enterprise_mode? || raise_only_for_enterprise_mode_error
50
- template_id || raise_parameter_is_required_error(:template_id)
51
-
52
- request = Web::Request.new(
53
- self,
54
- :get,
55
- "/workflow-templates/#{template_id}"
56
- )
57
-
58
- request.perform
59
- end
60
- end
61
- end
62
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Crowdin
4
- module Utils
5
- # Method for extract module namespaces from a string
6
- def fetch_module_full_name_from_string(string)
7
- string.split('::').inject(Module) { |acc, val| acc.const_get(val) }
8
- end
9
- end
10
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe 'Config instance' do
4
- before do
5
- @crowdin = Crowdin::Client.new do |config|
6
- config.api_token = 'api_token'
7
- config.project_id = 1
8
- end
9
- end
10
-
11
- it 'should have a version' do
12
- expect(Crowdin::Client::VERSION).to_not be_nil
13
- end
14
- end
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe 'Config instance' do
4
- before do
5
- @crowdin = Crowdin::Client.new do |config|
6
- config.api_token = 'api_token'
7
- config.project_id = 1
8
- end
9
- end
10
-
11
- it 'should have a #project_id' do
12
- expect(@crowdin.config.project_id).to_not be_nil
13
- end
14
-
15
- it 'should have a #api_token' do
16
- expect(@crowdin.config.api_token).to_not be_nil
17
- end
18
-
19
- it '#target_api_url should equal \'api/v2\' by default' do
20
- expect(@crowdin.config.target_api_url).to eq('/api/v2')
21
- end
22
-
23
- describe '#logger_enabled?' do
24
- it 'should equal false by default' do
25
- expect(@crowdin.config.logger_enabled?).to be_falsey
26
- end
27
-
28
- it 'should equal specified argument' do
29
- @crowdin = Crowdin::Client.new do |config|
30
- config.enable_logger = true
31
- end
32
-
33
- expect(@crowdin.config.logger_enabled?).to be_truthy
34
- end
35
- end
36
-
37
- describe '#enterprise_mode?' do
38
- it 'should equal false by default' do
39
- expect(@crowdin.config.enterprise_mode?).to be_falsey
40
- end
41
-
42
- it 'should equal true if user specify organization domain' do
43
- @crowdin = Crowdin::Client.new do |config|
44
- config.organization_domain = 'organization_domain'
45
- end
46
-
47
- expect(@crowdin.config.enterprise_mode?).to be_truthy
48
- end
49
- end
50
-
51
- describe '#base_url' do
52
- it 'should equal \'https://api.crowdin.com\' by default' do
53
- expect(@crowdin.config.base_url).to eq('https://api.crowdin.com')
54
- end
55
-
56
- it 'should equal specified organization domain' do
57
- @crowdin = Crowdin::Client.new do |config|
58
- config.organization_domain = 'organization_domain'
59
- end
60
-
61
- expect(@crowdin.config.base_url).to eq('https://organization_domain.api.crowdin.com')
62
- end
63
-
64
- it 'should equal full specified organization domain when user specify full url (with \'.com\')' do
65
- @crowdin = Crowdin::Client.new do |config|
66
- config.organization_domain = 'organization_domain.com'
67
- end
68
-
69
- expect(@crowdin.config.base_url).to eq('organization_domain.com')
70
- end
71
- end
72
- end