fragment-alpha-sdk 0.1.7 → 0.1.8
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.
- checksums.yaml +4 -4
- data/lib/fragment_client.rb +19 -23
- data/lib/queries.graphql +13 -0
- metadata +9 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 62a4d3cb2aa95e912261ccb28b7bc7a9b406e16e87beec88eea1f49706c3ffe0
|
|
4
|
+
data.tar.gz: 3e13aefb9c50d3301a048f28a4e5220bab037e223aad43fd508cb9c687896526
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 137cb1729e102a1aa668a4e7076435146701d99fd3f274cfef777580c3adb79f115bec45af56453eb46ad2ed3efe89e153d419e0da37fdd1bd6d96673e923865
|
|
7
|
+
data.tar.gz: 817d73d5ac8a07b940d0ddd5bb760a3417dac4ba80995604b82c82bcd68a152a46cb43945d7ba1fb794ee788d55bca2672bca5893deed1a317f7afe571955fec
|
data/lib/fragment_client.rb
CHANGED
|
@@ -15,7 +15,7 @@ module FragmentGraphQl
|
|
|
15
15
|
extend T::Sig
|
|
16
16
|
sig { params(context: T.untyped).returns(T::Hash[T.untyped, T.untyped]) }
|
|
17
17
|
def headers(context)
|
|
18
|
-
{ 'Authorization' => 'Bearer %s'
|
|
18
|
+
{ 'Authorization' => format('Bearer %s', context[:access_token]) }
|
|
19
19
|
end
|
|
20
20
|
end, GraphQL::Client::HTTP)
|
|
21
21
|
|
|
@@ -37,36 +37,32 @@ class FragmentClient
|
|
|
37
37
|
execute: GraphQL::Client::HTTP).void
|
|
38
38
|
end
|
|
39
39
|
def initialize(client_id, client_secret, extra_queries_filename: nil, execute: FragmentGraphQl::HTTP)
|
|
40
|
+
set_instance_variables(execute, client_id, client_secret)
|
|
41
|
+
define_method_from_queries(FragmentGraphQl::Queries)
|
|
42
|
+
return if extra_queries_filename.nil?
|
|
43
|
+
|
|
44
|
+
queries = FragmentGraphQl::Client.parse(
|
|
45
|
+
File.read(extra_queries_filename)
|
|
46
|
+
)
|
|
47
|
+
define_method_from_queries(queries)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def set_instance_variables(execute, client_id, client_secret)
|
|
40
51
|
@client = T.let(GraphQL::Client.new(schema: FragmentGraphQl::Schema, execute: execute), GraphQL::Client)
|
|
41
52
|
conn = create_conn(client_id, client_secret)
|
|
42
53
|
# TODO: the token may need to be refreshed if the client is around for a long time
|
|
43
54
|
@token = T.let(get_token(conn, client_id), String)
|
|
44
|
-
|
|
45
|
-
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def define_method_from_queries(queries)
|
|
58
|
+
queries.constants.each do |qry|
|
|
59
|
+
name = qry.to_s.gsub(/[a-z]([A-Z])/) do |m|
|
|
46
60
|
format('%<lower>s_%<upper>s', lower: m[0], upper: m[1].downcase)
|
|
47
61
|
end.gsub(/^[A-Z]/, &:downcase)
|
|
48
62
|
define_singleton_method(name) do |v|
|
|
49
|
-
query(
|
|
63
|
+
query(queries.const_get(qry), v)
|
|
50
64
|
end
|
|
51
65
|
end
|
|
52
|
-
|
|
53
|
-
return if extra_queries_filename.nil?
|
|
54
|
-
|
|
55
|
-
queries = FragmentGraphQl::Client.parse(
|
|
56
|
-
File.read(extra_queries_filename)
|
|
57
|
-
)
|
|
58
|
-
queries.constants.each do |q|
|
|
59
|
-
define_method_from_query(q, queries)
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def define_method_from_query(q, queries)
|
|
64
|
-
name = q.to_s.gsub(/[a-z]([A-Z])/) do |m|
|
|
65
|
-
format('%<lower>s_%<upper>s', lower: m[0], upper: m[1].downcase)
|
|
66
|
-
end.gsub(/^[A-Z]/, &:downcase)
|
|
67
|
-
define_singleton_method(name) do |v|
|
|
68
|
-
query(queries.const_get(q), v)
|
|
69
|
-
end
|
|
70
66
|
end
|
|
71
67
|
|
|
72
68
|
def create_conn(client_id, client_secret)
|
|
@@ -92,7 +88,7 @@ class FragmentClient
|
|
|
92
88
|
req.body = format('grant_type=client_credentials&scope=https://api.fragment.dev/*&client_id=%s', client_id)
|
|
93
89
|
end
|
|
94
90
|
rescue Faraday::ClientError => e
|
|
95
|
-
raise StandardError, "oauth Authentication failed: '%s'"
|
|
91
|
+
raise StandardError, format("oauth Authentication failed: '%s'", e.to_s)
|
|
96
92
|
end
|
|
97
93
|
T.let(JSON.parse(response.body)['access_token'], String)
|
|
98
94
|
end
|
data/lib/queries.graphql
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
mutation StoreSchema($schema: SchemaInput!) {
|
|
2
|
+
storeSchema(schema: $schema) {
|
|
3
|
+
schema {
|
|
4
|
+
key
|
|
5
|
+
name
|
|
6
|
+
version {
|
|
7
|
+
created
|
|
8
|
+
version
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
1
14
|
mutation CreateLedger($ik: SafeString!, $ledger: CreateLedgerInput!) {
|
|
2
15
|
createLedger(ik: $ik, ledger: $ledger) {
|
|
3
16
|
__typename
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fragment-alpha-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- fragment
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-02-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0.
|
|
33
|
+
version: '0.20'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0.
|
|
40
|
+
version: '0.20'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: sorbet-runtime
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -52,7 +52,7 @@ dependencies:
|
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '0.5'
|
|
55
|
-
description:
|
|
55
|
+
description:
|
|
56
56
|
email: snoble@fragment.dev
|
|
57
57
|
executables: []
|
|
58
58
|
extensions: []
|
|
@@ -66,7 +66,7 @@ homepage: https://fragment.dev
|
|
|
66
66
|
licenses:
|
|
67
67
|
- Nonstandard
|
|
68
68
|
metadata: {}
|
|
69
|
-
post_install_message:
|
|
69
|
+
post_install_message:
|
|
70
70
|
rdoc_options: []
|
|
71
71
|
require_paths:
|
|
72
72
|
- lib
|
|
@@ -81,8 +81,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0'
|
|
83
83
|
requirements: []
|
|
84
|
-
rubygems_version: 3.
|
|
85
|
-
signing_key:
|
|
84
|
+
rubygems_version: 3.0.3.1
|
|
85
|
+
signing_key:
|
|
86
86
|
specification_version: 4
|
|
87
87
|
summary: an alpha version for the fragment client sdk
|
|
88
88
|
test_files: []
|