fragment-alpha-sdk 0.1.1 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fragment_client.rb +16 -11
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9fcd189945f88efc13be0caa31d90be0195922380edff42eaa2aa1e39dd05d3e
|
4
|
+
data.tar.gz: 938e6b0c3ca168e9da2523a0238efe083ef9f06f6dc1b075d7484ad61a97f3f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4bcce2d57b8d478b1d3db76246c10dd93c0afc086a052e1ddac9fb59e1c7a4b284f4507ce9475fcd9ed8ccfec5f55a79c9b78a8891c8adfb88c4c48a24421d35
|
7
|
+
data.tar.gz: ac8790cd82ad51d0bb4c32a9b00d481456f7ae62c6ffbf97fb55239ce042a89ae9ca9049d095c0e94c539268d0e3906765fc2e32ebd17718a30b92f6980d61cc
|
data/lib/fragment_client.rb
CHANGED
@@ -8,23 +8,24 @@ require 'graphql/client'
|
|
8
8
|
require 'graphql/client/http'
|
9
9
|
require 'sorbet-runtime'
|
10
10
|
|
11
|
+
# A support module for the client
|
11
12
|
module FragmentGraphQl
|
12
13
|
extend T::Sig
|
13
14
|
http = GraphQL::Client.const_get(:HTTP).new('https://api.fragment.dev/graphql') do
|
14
15
|
extend T::Sig
|
15
|
-
sig {params(context: T.untyped).returns(T::Hash[T.untyped, T.untyped])}
|
16
|
+
sig { params(context: T.untyped).returns(T::Hash[T.untyped, T.untyped]) }
|
16
17
|
def headers(context)
|
17
|
-
{ 'Authorization' => 'Bearer %s'
|
18
|
+
{ 'Authorization' => 'Bearer %s'.format(context[:access_token]) }
|
18
19
|
end
|
19
20
|
end
|
20
21
|
|
21
22
|
Schema = T.let(GraphQL::Client.load_schema("#{__dir__}/fragment.schema.json"), T.untyped)
|
22
23
|
|
23
|
-
Client = T.let(GraphQL::Client.new(schema: Schema, execute:
|
24
|
+
Client = T.let(GraphQL::Client.new(schema: Schema, execute: http), GraphQL::Client)
|
24
25
|
|
25
26
|
Queries = T.let(Client.parse(
|
26
|
-
|
27
|
-
|
27
|
+
File.open("#{__dir__}/queries.graphql").read
|
28
|
+
), T.untyped)
|
28
29
|
end
|
29
30
|
|
30
31
|
# A client for Fragment
|
@@ -33,11 +34,7 @@ class FragmentClient
|
|
33
34
|
|
34
35
|
sig { params(client_id: String, client_secret: String).void }
|
35
36
|
def initialize(client_id, client_secret)
|
36
|
-
conn =
|
37
|
-
f.request :url_encoded
|
38
|
-
f.request :authorization, :basic, client_id, client_secret
|
39
|
-
f.adapter :net_http
|
40
|
-
end, Faraday::Connection)
|
37
|
+
conn = create_conn(client_id, client_secret)
|
41
38
|
@token = T.let(get_token(conn, client_id), String)
|
42
39
|
FragmentGraphQl::Queries.constants.each do |q|
|
43
40
|
name = q.to_s.gsub(/[a-z]([A-Z])/) do |m|
|
@@ -49,7 +46,15 @@ class FragmentClient
|
|
49
46
|
end
|
50
47
|
end
|
51
48
|
|
52
|
-
|
49
|
+
def create_conn(client_id, client_secret)
|
50
|
+
T.let(Faraday.new('https://auth.fragment.dev') do |f|
|
51
|
+
f.request :url_encoded
|
52
|
+
f.request :authorization, :basic, client_id, client_secret
|
53
|
+
f.adapter :net_http
|
54
|
+
end, Faraday::Connection)
|
55
|
+
end
|
56
|
+
|
57
|
+
sig { params(query: T.untyped, variables: T.untyped).returns(T.untyped) }
|
53
58
|
def query(query, variables)
|
54
59
|
FragmentGraphQl::Client.query(query, variables: variables, context: { access_token: @token })
|
55
60
|
end
|