crowdin-api 1.1.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test-and-lint.yml +1 -1
  3. data/.gitignore +2 -2
  4. data/.rubocop_todo.yml +114 -42
  5. data/README.md +26 -13
  6. data/bin/crowdin-console +5 -5
  7. data/crowdin-api.gemspec +1 -2
  8. data/lib/crowdin-api/api_resources/dictionaries.rb +32 -0
  9. data/lib/crowdin-api/api_resources/distributions.rb +92 -0
  10. data/lib/crowdin-api/api_resources/glossaries.rb +199 -0
  11. data/lib/crowdin-api/api_resources/labels.rb +98 -0
  12. data/lib/crowdin-api/api_resources/languages.rb +61 -0
  13. data/lib/crowdin-api/api_resources/machine_translation_engines.rb +79 -0
  14. data/lib/crowdin-api/api_resources/projects.rb +124 -0
  15. data/lib/crowdin-api/api_resources/reports.rb +120 -0
  16. data/lib/crowdin-api/api_resources/screenshots.rb +172 -0
  17. data/lib/crowdin-api/{api-resources → api_resources}/source_files.rb +68 -130
  18. data/lib/crowdin-api/{api-resources → api_resources}/source_strings.rb +19 -24
  19. data/lib/crowdin-api/api_resources/storages.rb +54 -0
  20. data/lib/crowdin-api/api_resources/string_comments.rb +68 -0
  21. data/lib/crowdin-api/api_resources/string_translations.rb +193 -0
  22. data/lib/crowdin-api/api_resources/tasks.rb +102 -0
  23. data/lib/crowdin-api/api_resources/teams.rb +135 -0
  24. data/lib/crowdin-api/api_resources/translation_memory.rb +131 -0
  25. data/lib/crowdin-api/{api-resources → api_resources}/translation_status.rb +24 -30
  26. data/lib/crowdin-api/{api-resources → api_resources}/translations.rb +41 -59
  27. data/lib/crowdin-api/api_resources/users.rb +161 -0
  28. data/lib/crowdin-api/api_resources/vendors.rb +21 -0
  29. data/lib/crowdin-api/api_resources/webhooks.rb +68 -0
  30. data/lib/crowdin-api/api_resources/workflows.rb +59 -0
  31. data/lib/crowdin-api/client/client.rb +72 -50
  32. data/lib/crowdin-api/client/configuration.rb +16 -12
  33. data/lib/crowdin-api/client/version.rb +1 -1
  34. data/lib/crowdin-api/core/errors.rb +2 -1
  35. data/lib/crowdin-api/core/{api_errors_raiser.rb → errors_raisers.rb} +21 -11
  36. data/lib/crowdin-api/core/request.rb +53 -88
  37. data/lib/crowdin-api/core/send_request.rb +67 -0
  38. data/lib/crowdin-api.rb +20 -11
  39. data/spec/api_resources/dictionaries_spec.rb +23 -0
  40. data/spec/api_resources/distributions_spec.rb +71 -0
  41. data/spec/api_resources/glossaries_spec.rb +167 -0
  42. data/spec/api_resources/labels_spec.rb +71 -0
  43. data/spec/api_resources/languages_spec.rb +51 -0
  44. data/spec/api_resources/machine_translation_engines_spec.rb +63 -0
  45. data/spec/api_resources/projects_spec.rb +215 -0
  46. data/spec/api_resources/reports_spec.rb +95 -0
  47. data/spec/api_resources/screenshots_spec.rb +134 -0
  48. data/spec/api_resources/source_files_spec.rb +13 -0
  49. data/spec/api_resources/source_strings_spec.rb +51 -0
  50. data/spec/api_resources/storages_spec.rb +13 -0
  51. data/spec/api_resources/string_comments_spec.rb +13 -0
  52. data/spec/api_resources/string_translations_spec.rb +13 -0
  53. data/spec/api_resources/tasks_spec.rb +79 -0
  54. data/spec/api_resources/teams_spec.rb +13 -0
  55. data/spec/api_resources/translation_memory_spec.rb +13 -0
  56. data/spec/api_resources/translation_status_spec.rb +15 -0
  57. data/spec/api_resources/translations_spec.rb +107 -0
  58. data/spec/api_resources/users_spec.rb +117 -0
  59. data/spec/api_resources/vendors_spec.rb +13 -0
  60. data/spec/api_resources/webhooks_spec.rb +51 -0
  61. data/spec/api_resources/workflows_spec.rb +41 -0
  62. data/spec/spec_helper.rb +20 -2
  63. data/spec/unit/client_spec.rb +85 -0
  64. metadata +65 -28
  65. data/bin/setup +0 -6
  66. data/lib/crowdin-api/api-resources/languages.rb +0 -81
  67. data/lib/crowdin-api/api-resources/projects.rb +0 -134
  68. data/lib/crowdin-api/api-resources/storages.rb +0 -102
  69. data/lib/crowdin-api/api-resources/workflows.rb +0 -59
  70. data/spec/core/config-instance_spec.rb +0 -72
  71. data/spec/crowdin-api_spec.rb +0 -7
@@ -8,13 +8,12 @@ module Crowdin
8
8
  project_id || raise_project_id_is_required_error
9
9
 
10
10
  request = Web::Request.new(
11
- self,
11
+ connection,
12
12
  :get,
13
- "/projects/#{project_id}/branches/#{branch_id}/languages/progress",
14
- query
13
+ "#{config.target_api_url}/projects/#{project_id}/branches/#{branch_id}/languages/progress",
14
+ { params: query }
15
15
  )
16
-
17
- request.perform
16
+ Web::SendRequest.new(request).perform
18
17
  end
19
18
 
20
19
  def get_directory_progress(directory_id = nil, query = {}, project_id = config.project_id)
@@ -22,13 +21,12 @@ module Crowdin
22
21
  project_id || raise_project_id_is_required_error
23
22
 
24
23
  request = Web::Request.new(
25
- self,
24
+ connection,
26
25
  :get,
27
- "/projects/#{project_id}/directories/#{directory_id}/languages/progress",
28
- query
26
+ "#{config.target_api_url}/projects/#{project_id}/directories/#{directory_id}/languages/progress",
27
+ { params: query }
29
28
  )
30
-
31
- request.perform
29
+ Web::SendRequest.new(request).perform
32
30
  end
33
31
 
34
32
  def get_file_progress(file_id = nil, query = {}, project_id = config.project_id)
@@ -36,13 +34,12 @@ module Crowdin
36
34
  project_id || raise_project_id_is_required_error
37
35
 
38
36
  request = Web::Request.new(
39
- self,
37
+ connection,
40
38
  :get,
41
- "/projects/#{project_id}/files/#{file_id}/languages/progress",
42
- query
39
+ "#{config.target_api_url}/projects/#{project_id}/files/#{file_id}/languages/progress",
40
+ { params: query }
43
41
  )
44
-
45
- request.perform
42
+ Web::SendRequest.new(request).perform
46
43
  end
47
44
 
48
45
  def get_language_progress(language_id = nil, query = {}, project_id = config.project_id)
@@ -50,39 +47,36 @@ module Crowdin
50
47
  project_id || raise_project_id_is_required_error
51
48
 
52
49
  request = Web::Request.new(
53
- self,
50
+ connection,
54
51
  :get,
55
- "/projects/#{project_id}/languages/#{language_id}/progress",
56
- query
52
+ "#{config.target_api_url}/projects/#{project_id}/languages/#{language_id}/progress",
53
+ { params: query }
57
54
  )
58
-
59
- request.perform
55
+ Web::SendRequest.new(request).perform
60
56
  end
61
57
 
62
58
  def get_project_progress(query = {}, project_id = config.project_id)
63
59
  project_id || raise_project_id_is_required_error
64
60
 
65
61
  request = Web::Request.new(
66
- self,
62
+ connection,
67
63
  :get,
68
- "/projects/#{project_id}/languages/progress",
69
- query
64
+ "#{config.target_api_url}/projects/#{project_id}/languages/progress",
65
+ { params: query }
70
66
  )
71
-
72
- request.perform
67
+ Web::SendRequest.new(request).perform
73
68
  end
74
69
 
75
70
  def get_qa_progress(query = {}, project_id = config.project_id)
76
71
  project_id || raise_project_id_is_required_error
77
72
 
78
73
  request = Web::Request.new(
79
- self,
74
+ connection,
80
75
  :get,
81
- "/projects/#{project_id}/qa-checks",
82
- query
76
+ "#{config.target_api_url}/projects/#{project_id}/qa-checks",
77
+ { params: query }
83
78
  )
84
-
85
- request.perform
79
+ Web::SendRequest.new(request).perform
86
80
  end
87
81
  end
88
82
  end
@@ -8,25 +8,23 @@ module Crowdin
8
8
  project_id || raise_project_id_is_required_error
9
9
 
10
10
  request = Web::Request.new(
11
- self,
11
+ connection,
12
12
  :get,
13
- "/projects/#{project_id}/pre-translations/#{pre_translation_id}"
13
+ "#{config.target_api_url}/projects/#{project_id}/pre-translations/#{pre_translation_id}"
14
14
  )
15
-
16
- request.perform
15
+ Web::SendRequest.new(request).perform
17
16
  end
18
17
 
19
18
  def apply_pre_translation(query = {}, project_id = config.project_id)
20
19
  project_id || raise_project_id_is_required_error
21
20
 
22
21
  request = Web::Request.new(
23
- self,
22
+ connection,
24
23
  :post,
25
- "/projects/#{project_id}/pre-translations",
26
- query
24
+ "#{config.target_api_url}/projects/#{project_id}/pre-translations",
25
+ { params: query }
27
26
  )
28
-
29
- request.perform
27
+ Web::SendRequest.new(request).perform
30
28
  end
31
29
 
32
30
  def build_project_directory_translation(directory_id = nil, query = {}, project_id = config.project_id)
@@ -34,56 +32,51 @@ module Crowdin
34
32
  project_id || raise_project_id_is_required_error
35
33
 
36
34
  request = Web::Request.new(
37
- self,
35
+ connection,
38
36
  :post,
39
- "/projects/#{project_id}/translations/builds/directories/#{directory_id}",
40
- query
37
+ "#{config.target_api_url}/projects/#{project_id}/translations/builds/directories/#{directory_id}",
38
+ { params: query }
41
39
  )
42
-
43
- request.perform
40
+ Web::SendRequest.new(request).perform
44
41
  end
45
42
 
46
- def build_project_file_translation(file_id = nil, query = {}, project_id = config.project_id)
43
+ def build_project_file_translation(file_id = nil, query = {}, destination = nil, project_id = config.project_id)
47
44
  file_id || raise_parameter_is_required_error(:file_id)
48
45
  project_id || raise_project_id_is_required_error
49
46
 
50
47
  headers = query[:eTag] ? { 'If-None-Match' => query[:eTag] } : {}
51
48
 
52
49
  request = Web::Request.new(
53
- self,
50
+ connection,
54
51
  :post,
55
- "/projects/#{project_id}/translations/builds/files/#{file_id}",
56
- query,
57
- headers
52
+ "#{config.target_api_url}/projects/#{project_id}/translations/builds/files/#{file_id}",
53
+ { params: query, headers: headers }
58
54
  )
59
-
60
- request.perform
55
+ Web::SendRequest.new(request, destination).perform
61
56
  end
62
57
 
63
58
  def list_project_builds(query = {}, project_id = config.project_id)
64
59
  project_id || raise_project_id_is_required_error
65
60
 
66
61
  request = Web::Request.new(
67
- self,
62
+ connection,
68
63
  :get,
69
- "/projects/#{project_id}/translations/builds",
70
- query
64
+ "#{config.target_api_url}/projects/#{project_id}/translations/builds",
65
+ { params: query }
71
66
  )
72
-
73
- request.perform
67
+ Web::SendRequest.new(request).perform
74
68
  end
75
69
 
76
70
  def build_project_translation(query = {}, project_id = config.project_id)
77
71
  project_id || raise_project_id_is_required_error
78
72
 
79
73
  request = Web::Request.new(
80
- self,
74
+ connection,
81
75
  :post,
82
- "/projects/#{project_id}/translations/builds",
83
- query
76
+ "#{config.target_api_url}/projects/#{project_id}/translations/builds",
77
+ { params: query }
84
78
  )
85
-
86
- request.perform
79
+ Web::SendRequest.new(request).perform
87
80
  end
88
81
 
89
82
  def upload_translations(language_id = nil, query = {}, project_id = config.project_id)
@@ -91,30 +84,24 @@ module Crowdin
91
84
  project_id || raise_project_id_is_required_error
92
85
 
93
86
  request = Web::Request.new(
94
- self,
87
+ connection,
95
88
  :post,
96
- "/projects/#{project_id}/translations/#{language_id}",
97
- query
89
+ "#{config.target_api_url}/projects/#{project_id}/translations/#{language_id}",
90
+ { params: query }
98
91
  )
99
-
100
- request.perform
92
+ Web::SendRequest.new(request).perform
101
93
  end
102
94
 
103
95
  def download_project_translations(build_id = nil, destination = nil, project_id = config.project_id)
104
- destination || raise_parameter_is_required_error(:destination)
105
96
  build_id || raise_parameter_is_required_error(:build_id)
106
97
  project_id || raise_project_id_is_required_error
107
98
 
108
99
  request = Web::Request.new(
109
- self,
100
+ connection,
110
101
  :get,
111
- "/projects/#{project_id}/translations/builds/#{build_id}/download",
112
- {},
113
- {},
114
- destination
102
+ "#{config.target_api_url}/projects/#{project_id}/translations/builds/#{build_id}/download"
115
103
  )
116
-
117
- request.perform
104
+ Web::SendRequest.new(request, destination).perform
118
105
  end
119
106
 
120
107
  def check_project_build_status(build_id = nil, project_id = config.project_id)
@@ -122,12 +109,11 @@ module Crowdin
122
109
  project_id || raise_project_id_is_required_error
123
110
 
124
111
  request = Web::Request.new(
125
- self,
112
+ connection,
126
113
  :get,
127
- "/projects/#{project_id}/translations/builds/#{build_id}"
114
+ "#{config.target_api_url}/projects/#{project_id}/translations/builds/#{build_id}"
128
115
  )
129
-
130
- request.perform
116
+ Web::SendRequest.new(request).perform
131
117
  end
132
118
 
133
119
  def cancel_build(build_id = nil, project_id = config.project_id)
@@ -135,27 +121,23 @@ module Crowdin
135
121
  project_id || raise_project_id_is_required_error
136
122
 
137
123
  request = Web::Request.new(
138
- self,
124
+ connection,
139
125
  :delete,
140
- "/projects/#{project_id}/translations/builds/#{build_id}"
126
+ "#{config.target_api_url}/projects/#{project_id}/translations/builds/#{build_id}"
141
127
  )
142
-
143
- request.perform
128
+ Web::SendRequest.new(request).perform
144
129
  end
145
130
 
146
131
  def export_project_translation(query = {}, destination = nil, project_id = config.project_id)
147
132
  project_id || raise_project_id_is_required_error
148
133
 
149
134
  request = Web::Request.new(
150
- self,
135
+ connection,
151
136
  :post,
152
- "/projects/#{project_id}/translations/exports",
153
- query,
154
- {},
155
- destination
137
+ "#{config.target_api_url}/projects/#{project_id}/translations/exports",
138
+ { params: query }
156
139
  )
157
-
158
- request.perform
140
+ Web::SendRequest.new(request, destination).perform
159
141
  end
160
142
  end
161
143
  end
@@ -0,0 +1,161 @@
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
+ connection,
9
+ :get,
10
+ "#{config.target_api_url}/user"
11
+ )
12
+ Web::SendRequest.new(request).perform
13
+ end
14
+
15
+ def list_project_members(query = {}, project_id = config.project_id)
16
+ project_id || raise_project_id_is_required_error
17
+
18
+ request = Web::Request.new(
19
+ connection,
20
+ :get,
21
+ "#{config.target_api_url}/projects/#{project_id}/members",
22
+ { params: query }
23
+ )
24
+ Web::SendRequest.new(request).perform
25
+ end
26
+
27
+ def get_member_info(member_id = nil, project_id = config.project_id)
28
+ member_id || raise_parameter_is_required_error(:member_id)
29
+ project_id || raise_project_id_is_required_error
30
+
31
+ request = Web::Request.new(
32
+ connection,
33
+ :get,
34
+ "#{config.target_api_url}/projects/#{project_id}/members/#{member_id}"
35
+ )
36
+ Web::SendRequest.new(request).perform
37
+ end
38
+
39
+ # -- For Enterprise mode only --
40
+
41
+ def add_project_member(query = {}, project_id = config.project_id)
42
+ enterprise_mode? || raise_only_for_enterprise_mode_error
43
+ project_id || raise_project_id_is_required_error
44
+
45
+ request = Web::Request.new(
46
+ connection,
47
+ :post,
48
+ "#{config.target_api_url}/projects/#{project_id}/members",
49
+ { params: query }
50
+ )
51
+ Web::SendRequest.new(request).perform
52
+ end
53
+
54
+ def get_project_member_permissions(member_id = nil, project_id = config.project_id)
55
+ enterprise_mode? || raise_only_for_enterprise_mode_error
56
+ member_id || raise_parameter_is_required_error(:member_id)
57
+ project_id || raise_project_id_is_required_error
58
+
59
+ request = Web::Request.new(
60
+ connection,
61
+ :get,
62
+ "#{config.target_api_url}/projects/#{project_id}/members/#{member_id}"
63
+ )
64
+ Web::SendRequest.new(request).perform
65
+ end
66
+
67
+ def replace_project_permissions(member_id = nil, query = {}, project_id = config.project_id)
68
+ enterprise_mode? || raise_only_for_enterprise_mode_error
69
+ member_id || raise_parameter_is_required_error(:member_id)
70
+ project_id || raise_project_id_is_required_error
71
+
72
+ request = Web::Request.new(
73
+ connection,
74
+ :put,
75
+ "#{config.target_api_url}/projects/#{project_id}/members/#{member_id}",
76
+ { params: query }
77
+ )
78
+ Web::SendRequest.new(request).perform
79
+ end
80
+
81
+ def delete_member_from_project(member_id = nil, query = {}, project_id = config.project_id)
82
+ enterprise_mode? || raise_only_for_enterprise_mode_error
83
+ member_id || raise_parameter_is_required_error(:member_id)
84
+ project_id || raise_project_id_is_required_error
85
+
86
+ response = ::RestClient::Request.execute(
87
+ {
88
+ method: :delete,
89
+ url: config.base_url + config.target_api_url + "/projects/#{project_id}/members/#{member_id}",
90
+ payload: query.to_json
91
+ }.merge(@options)
92
+ )
93
+
94
+ response.body.empty? ? response.code : JSON.parse(response.body)
95
+ rescue StandardError => e
96
+ e.message
97
+ end
98
+
99
+ def list_users(query = {})
100
+ enterprise_mode? || raise_only_for_enterprise_mode_error
101
+
102
+ request = Web::Request.new(
103
+ connection,
104
+ :get,
105
+ "#{config.target_api_url}/users",
106
+ { params: query }
107
+ )
108
+ Web::SendRequest.new(request).perform
109
+ end
110
+
111
+ def invite_user(query = {})
112
+ enterprise_mode? || raise_only_for_enterprise_mode_error
113
+
114
+ request = Web::Request.new(
115
+ connection,
116
+ :post,
117
+ "#{config.target_api_url}/users",
118
+ { params: query }
119
+ )
120
+ Web::SendRequest.new(request).perform
121
+ end
122
+
123
+ def get_user(user_id = nil)
124
+ enterprise_mode? || raise_only_for_enterprise_mode_error
125
+ user_id || raise_parameter_is_required_error(:user_id)
126
+
127
+ request = Web::Request.new(
128
+ connection,
129
+ :get,
130
+ "#{config.target_api_url}/users/#{user_id}"
131
+ )
132
+ Web::SendRequest.new(request).perform
133
+ end
134
+
135
+ def delete_user(user_id = nil)
136
+ enterprise_mode? || raise_only_for_enterprise_mode_error
137
+ user_id || raise_parameter_is_required_error(:user_id)
138
+
139
+ request = Web::Request.new(
140
+ connection,
141
+ :delete,
142
+ "#{config.target_api_url}/users/#{user_id}"
143
+ )
144
+ Web::SendRequest.new(request).perform
145
+ end
146
+
147
+ def edit_user(user_id = nil, query = {})
148
+ enterprise_mode? || raise_only_for_enterprise_mode_error
149
+ user_id || raise_parameter_is_required_error(:user_id)
150
+
151
+ request = Web::Request.new(
152
+ connection,
153
+ :patch,
154
+ "#{config.target_api_url}/users/#{user_id}",
155
+ { params: query }
156
+ )
157
+ Web::SendRequest.new(request).perform
158
+ end
159
+ end
160
+ end
161
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module Vendors
6
+ # -- For Enterprise mode only --
7
+
8
+ def list_vendors(query = {})
9
+ enterprise_mode? || raise_only_for_enterprise_mode_error
10
+
11
+ request = Web::Request.new(
12
+ connection,
13
+ :get,
14
+ "#{config.target_api_url}/vendors",
15
+ { params: query }
16
+ )
17
+ Web::SendRequest.new(request).perform
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module Webhooks
6
+ def list_webhooks(query = {}, project_id = config.project_id)
7
+ project_id || raise_project_id_is_required_error
8
+
9
+ request = Web::Request.new(
10
+ connection,
11
+ :get,
12
+ "#{config.target_api_url}/projects/#{project_id}/webhooks",
13
+ { params: query }
14
+ )
15
+ Web::SendRequest.new(request).perform
16
+ end
17
+
18
+ def add_webhook(query = {}, project_id = config.project_id)
19
+ project_id || raise_project_id_is_required_error
20
+
21
+ request = Web::Request.new(
22
+ connection,
23
+ :post,
24
+ "#{config.target_api_url}/projects/#{project_id}/webhooks",
25
+ { params: query }
26
+ )
27
+ Web::SendRequest.new(request).perform
28
+ end
29
+
30
+ def get_webhook(webhook_id = nil, project_id = config.project_id)
31
+ webhook_id || raise_parameter_is_required_error(:webhook_id)
32
+ project_id || raise_project_id_is_required_error
33
+
34
+ request = Web::Request.new(
35
+ connection,
36
+ :get,
37
+ "#{config.target_api_url}/projects/#{project_id}/webhooks/#{webhook_id}"
38
+ )
39
+ Web::SendRequest.new(request).perform
40
+ end
41
+
42
+ def delete_webhook(webhook_id = nil, project_id = config.project_id)
43
+ webhook_id || raise_parameter_is_required_error(:webhook_id)
44
+ project_id || raise_project_id_is_required_error
45
+
46
+ request = Web::Request.new(
47
+ connection,
48
+ :delete,
49
+ "#{config.target_api_url}/projects/#{project_id}/webhooks/#{webhook_id}"
50
+ )
51
+ Web::SendRequest.new(request).perform
52
+ end
53
+
54
+ def edit_webhook(webhook_id = nil, query = {}, project_id = config.project_id)
55
+ webhook_id || raise_parameter_is_required_error(:webhook_id)
56
+ project_id || raise_project_id_is_required_error
57
+
58
+ request = Web::Request.new(
59
+ connection,
60
+ :patch,
61
+ "#{config.target_api_url}/projects/#{project_id}/webhooks/#{webhook_id}",
62
+ { params: query }
63
+ )
64
+ Web::SendRequest.new(request).perform
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module Workflows
6
+ # -- For Enterprise mode only --
7
+
8
+ def list_workflow_steps(query = {}, project_id = config.project_id)
9
+ enterprise_mode? || raise_only_for_enterprise_mode_error
10
+ project_id || raise_project_id_is_required_error
11
+
12
+ request = Web::Request.new(
13
+ connection,
14
+ :get,
15
+ "#{config.target_api_url}/projects/#{project_id}/workflow-steps",
16
+ { params: query }
17
+ )
18
+ Web::SendRequest.new(request).perform
19
+ end
20
+
21
+ def get_workflow_step(step_id = nil, project_id = config.project_id)
22
+ 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
+ connection,
28
+ :get,
29
+ "#{config.target_api_url}/projects/#{project_id}/workflow-steps/#{step_id}"
30
+ )
31
+ Web::SendRequest.new(request).perform
32
+ end
33
+
34
+ def list_workflow_templates(query = {})
35
+ enterprise_mode? || raise_only_for_enterprise_mode_error
36
+
37
+ request = Web::Request.new(
38
+ connection,
39
+ :get,
40
+ "#{config.target_api_url}/workflow-templates",
41
+ { params: query }
42
+ )
43
+ Web::SendRequest.new(request).perform
44
+ end
45
+
46
+ def get_workflow_template(template_id = nil)
47
+ enterprise_mode? || raise_only_for_enterprise_mode_error
48
+ template_id || raise_parameter_is_required_error(:template_id)
49
+
50
+ request = Web::Request.new(
51
+ connection,
52
+ :get,
53
+ "#{config.target_api_url}/workflow-templates/#{template_id}"
54
+ )
55
+ Web::SendRequest.new(request).perform
56
+ end
57
+ end
58
+ end
59
+ end