motor-admin 0.2.79 → 0.2.80

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 10043b4f4322fa7e056f572c1679a262aa7e1ec0543be3f8db6763a5eef70518
4
- data.tar.gz: b7b9dd3763e28a70d4c3b472d8169c83ac271d9b383530c6eefe4f57a9fdc07e
3
+ metadata.gz: 7739ccc3f3a69f6040c87ff4cac7f02bd84fc236347800b11fe98c7807e14aca
4
+ data.tar.gz: 4e3715f4a68437d690b39188d329e861156d01425fd31bbe8596d352885dfff6
5
5
  SHA512:
6
- metadata.gz: dc193d263ab4d7730c81f75e54e29a7e394077da39a9006c4a2d048218df0acd22d541d3a39facdb3770d97b2339c7e86a567b7707bb7b89ee5764f2193c619d
7
- data.tar.gz: d250a26bcb90a9f236367a33dc89750e28e6f5e4ebc1de72cbcac85600c6e421659a3863274d19080b13075e186891fb3bbaf191f61367cbeeac81e170a6b958
6
+ metadata.gz: f96b7c6dd63520674aef9d9a6ada927453c0a5b672ef473fd46460688e05e82c4cd6b6e58e1e7fdc3cf30cae5c98533c333cb2987cabe4c8a59c8d46b7a59adf
7
+ data.tar.gz: 653862f91f58d82b5def8f1fb6673ca644d48c32a8a7cf2df5a7f0d8dfe58513c2b51eac5ddccbf890a2aed2cd318726ec92e5f26786ebedcdf1876e5eb74426
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Motor
4
+ class RunGraphqlRequestsController < ApiBaseController
5
+ JWT_TTL = 2.hours
6
+
7
+ wrap_parameters :data
8
+
9
+ def create
10
+ respond_with_result
11
+ end
12
+
13
+ private
14
+
15
+ def respond_with_result
16
+ response = Motor::ApiConfigs.run_grapql(find_or_initialize_api_config,
17
+ query: request_params[:query],
18
+ variables: request_params[:variables],
19
+ headers: { 'Authorization' => "Bearer #{current_user_jwt}" })
20
+
21
+ self.response_body = response.body
22
+ self.status = response.code.to_i
23
+ end
24
+
25
+ def find_or_initialize_api_config
26
+ Motor::ApiConfig.find_by(name: request_params[:api_config_name]) ||
27
+ Motor::ApiConfig.new(url: request_params[:api_config_name])
28
+ end
29
+
30
+ def current_user_jwt
31
+ return '' unless defined?(JWT)
32
+ return '' unless current_user
33
+
34
+ payload = { uid: current_user.id, email: current_user.email, exp: JWT_TTL.from_now.to_i }
35
+
36
+ JWT.encode(payload, Rails.application.secrets.secret_key_base)
37
+ end
38
+
39
+ def request_params
40
+ params.require(:data).permit!
41
+ end
42
+ end
43
+ end
data/config/routes.rb CHANGED
@@ -15,6 +15,7 @@ Motor::Admin.routes.draw do
15
15
  resources :schema, only: %i[index show], param: 'resource'
16
16
  resources :dashboards, only: %i[index show create update destroy]
17
17
  resource :run_api_request, only: %i[show create]
18
+ resource :run_graphql_request, only: %i[create]
18
19
  resources :api_configs, only: %i[index create destroy]
19
20
  resources :forms, only: %i[index show create update destroy]
20
21
  resources :alerts, only: %i[index show create update destroy]
@@ -23,5 +23,19 @@ module Motor
23
23
  body&.to_json
24
24
  )
25
25
  end
26
+
27
+ def run_grapql(api_config, query:, variables: {}, headers: {})
28
+ body = {
29
+ query: query,
30
+ variables: variables.merge(form_data: variables)
31
+ }
32
+
33
+ Motor::NetHttpUtils.post(
34
+ api_config.url,
35
+ {},
36
+ DEFAULT_HEADERS.merge(headers).merge(api_config.headers),
37
+ body.to_json
38
+ )
39
+ end
26
40
  end
27
41
  end
data/lib/motor/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Motor
4
- VERSION = '0.2.79'
4
+ VERSION = '0.2.80'
5
5
  end
@@ -3961,9 +3961,9 @@
3961
3961
  "icons/zoom-pan.svg.gz": "icons/zoom-pan.svg.gz",
3962
3962
  "icons/zoom-question.svg": "icons/zoom-question.svg",
3963
3963
  "icons/zoom-question.svg.gz": "icons/zoom-question.svg.gz",
3964
- "main-dfff41ec5f382c46a787.css.gz": "main-dfff41ec5f382c46a787.css.gz",
3965
- "main-dfff41ec5f382c46a787.js.LICENSE.txt": "main-dfff41ec5f382c46a787.js.LICENSE.txt",
3966
- "main-dfff41ec5f382c46a787.js.gz": "main-dfff41ec5f382c46a787.js.gz",
3967
- "main.css": "main-dfff41ec5f382c46a787.css",
3968
- "main.js": "main-dfff41ec5f382c46a787.js"
3964
+ "main-debd2ed9f328fcea487c.css.gz": "main-debd2ed9f328fcea487c.css.gz",
3965
+ "main-debd2ed9f328fcea487c.js.LICENSE.txt": "main-debd2ed9f328fcea487c.js.LICENSE.txt",
3966
+ "main-debd2ed9f328fcea487c.js.gz": "main-debd2ed9f328fcea487c.js.gz",
3967
+ "main.css": "main-debd2ed9f328fcea487c.css",
3968
+ "main.js": "main-debd2ed9f328fcea487c.js"
3969
3969
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motor-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.79
4
+ version: 0.2.80
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Matsyburka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-25 00:00:00.000000000 Z
11
+ date: 2022-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord-filter
@@ -129,6 +129,7 @@ files:
129
129
  - app/controllers/motor/resource_methods_controller.rb
130
130
  - app/controllers/motor/resources_controller.rb
131
131
  - app/controllers/motor/run_api_requests_controller.rb
132
+ - app/controllers/motor/run_grapql_request_controller.rb
132
133
  - app/controllers/motor/run_queries_controller.rb
133
134
  - app/controllers/motor/schema_controller.rb
134
135
  - app/controllers/motor/send_alerts_controller.rb
@@ -2213,8 +2214,8 @@ files:
2213
2214
  - ui/dist/icons/zoom-out.svg.gz
2214
2215
  - ui/dist/icons/zoom-pan.svg.gz
2215
2216
  - ui/dist/icons/zoom-question.svg.gz
2216
- - ui/dist/main-dfff41ec5f382c46a787.css.gz
2217
- - ui/dist/main-dfff41ec5f382c46a787.js.gz
2217
+ - ui/dist/main-debd2ed9f328fcea487c.css.gz
2218
+ - ui/dist/main-debd2ed9f328fcea487c.js.gz
2218
2219
  - ui/dist/manifest.json
2219
2220
  homepage:
2220
2221
  licenses: