fragment-alpha-sdk 0.1.4 → 0.1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: efc049f49b8a5204a8f2b4a73a71fb7cb414d7075edb84985028c669bf7d5ccf
4
- data.tar.gz: 61cb68b3406b030f63f5b5d2d8c23650a17506068e1475047d29a84de08896f9
3
+ metadata.gz: 123eb6ee84493101bbe1b79713f786d25ec62f30adfe298684f698d60058cca4
4
+ data.tar.gz: 1ab1324fe497737d22abd0d0c4e9a49456ae30897fb4057d20183545b57d1262
5
5
  SHA512:
6
- metadata.gz: 397c8208aaa6ad9ec8180d4f8df3a043dd7ec8a22e8391eabd95609da7ef63210ae24396697fc33877e4386426664511eea74abc975cba4103e678f00e6ce674
7
- data.tar.gz: 8493076e142f600db9703a44cbf3380d21c826051d072df6182c874904ad4e1b123327359ea9b9c545385f8a7525670ffddf15a19e5ff900cb6aed1f61a956f1
6
+ metadata.gz: 0d38fdf8f38acfbec7a8561f1cae835cf8727e2fb724ec28cfeadc9878559eb5d1e1cff0d9384ac43e74ded16b22af255c2487fb4ef27cd7b7d0db26a78b30eb
7
+ data.tar.gz: a576073d63e2faa3e0ccda0263d41addc835a9f0404791570283b9f71acd1e2cd7b4ad9ea5c40d02e881635544888ab67ab6cb9e5373eca8a03a39629c7a1f33
@@ -24,7 +24,7 @@ module FragmentGraphQl
24
24
  Client = T.let(GraphQL::Client.new(schema: Schema, execute: http), GraphQL::Client)
25
25
 
26
26
  Queries = T.let(Client.parse(
27
- File.open("#{__dir__}/queries.graphql").read
27
+ File.read("#{__dir__}/queries.graphql")
28
28
  ), T.untyped)
29
29
  end
30
30
 
@@ -32,8 +32,8 @@ end
32
32
  class FragmentClient
33
33
  extend T::Sig
34
34
 
35
- sig { params(client_id: String, client_secret: String).void }
36
- def initialize(client_id, client_secret)
35
+ sig { params(client_id: String, client_secret: String, extra_queries_filename: T.nilable(String)).void }
36
+ def initialize(client_id, client_secret, extra_queries_filename: nil)
37
37
  conn = create_conn(client_id, client_secret)
38
38
  @token = T.let(get_token(conn, client_id), String)
39
39
  FragmentGraphQl::Queries.constants.each do |q|
@@ -44,6 +44,20 @@ class FragmentClient
44
44
  query(FragmentGraphQl::Queries.const_get(q), v)
45
45
  end
46
46
  end
47
+
48
+ return if extra_queries_filename.nil?
49
+
50
+ queries = FragmentGraphQl::Client.parse(
51
+ File.read(extra_queries_filename)
52
+ )
53
+ queries.constants.each do |q|
54
+ name = q.to_s.gsub(/[a-z]([A-Z])/) do |m|
55
+ format('%<lower>s_%<upper>s', lower: m[0], upper: m[1].downcase)
56
+ end.gsub(/^[A-Z]/, &:downcase)
57
+ define_singleton_method(name) do |v|
58
+ query(queries.const_get(q), v)
59
+ end
60
+ end
47
61
  end
48
62
 
49
63
  def create_conn(client_id, client_secret)
data/lib/queries.graphql CHANGED
@@ -1,5 +1,6 @@
1
1
  mutation CreateLedger($ik: ID!, $ledger: CreateLedgerInput!) {
2
2
  createLedger(ik: $ik, ledger: $ledger) {
3
+ __typename
3
4
  ... on CreateLedgerResult {
4
5
  ledger {
5
6
  id
@@ -36,6 +37,175 @@ mutation CreateLedgerAccounts(
36
37
  isIkReplay
37
38
  }
38
39
  }
40
+ ... on BadRequestError {
41
+ code
42
+ message
43
+ }
44
+ ... on InternalError {
45
+ code
46
+ message
47
+ }
48
+ }
49
+ }
50
+
51
+ mutation ReconcileTx($entry: LedgerEntryInput!) {
52
+ reconcileTx(entry: $entry) {
53
+ __typename
54
+ ... on ReconcileTxResult {
55
+ entry {
56
+ id
57
+ date
58
+ description
59
+ }
60
+ lines {
61
+ id
62
+ date
63
+ amount
64
+ type
65
+ }
66
+ }
67
+ ... on BadRequestError {
68
+ code
69
+ message
70
+ }
71
+ ... on InternalError {
72
+ code
73
+ message
74
+ }
75
+ }
76
+ }
77
+
78
+ mutation AddLedgerEntry($entry: LedgerEntryInput!, $ik: ID!) {
79
+ addLedgerEntry(entry: $entry, ik: $ik) {
80
+ __typename
81
+ ... on AddLedgerEntryResult {
82
+ entry {
83
+ id
84
+ date
85
+ description
86
+ }
87
+ lines {
88
+ id
89
+ date
90
+ description
91
+ amount
92
+ type
93
+ }
94
+ }
95
+ ... on BadRequestError {
96
+ code
97
+ message
98
+ }
99
+ ... on InternalError {
100
+ code
101
+ message
102
+ }
103
+ }
104
+ }
105
+
106
+ mutation UpdateLedger($ledger: LedgerMatchInput!, $update: UpdateLedgerInput!) {
107
+ updateLedger(ledger: $ledger, update: $update) {
108
+ __typename
109
+ ... on UpdateLedgerResult {
110
+ ledger {
111
+ id
112
+ name
113
+ }
114
+ }
115
+ ... on BadRequestError {
116
+ code
117
+ message
118
+ }
119
+ ... on InternalError {
120
+ code
121
+ message
122
+ }
123
+ }
124
+ }
125
+
126
+ mutation UpdateLedgerAccount(
127
+ $ledgerAccount: LedgerAccountMatchInput!
128
+ $update: UpdateLedgerAccountInput!
129
+ ) {
130
+ updateLedgerAccount(ledgerAccount: $ledgerAccount, update: $update) {
131
+ __typename
132
+ ... on UpdateLedgerAccountResult {
133
+ ledgerAccount {
134
+ id
135
+ name
136
+ }
137
+ }
138
+ ... on BadRequestError {
139
+ code
140
+ message
141
+ }
142
+ ... on InternalError {
143
+ code
144
+ message
145
+ }
146
+ }
147
+ }
148
+
149
+ mutation NewCustomLink($name: String!, $ik: ID!) {
150
+ createCustomLink(name: $name, ik: $ik) {
151
+ __typename
152
+ ... on CreateCustomLinkResult {
153
+ link {
154
+ id
155
+ name
156
+ }
157
+ isIkReplay
158
+ }
159
+ ... on BadRequestError {
160
+ code
161
+ message
162
+ }
163
+ ... on InternalError {
164
+ code
165
+ message
166
+ }
167
+ }
168
+ }
169
+
170
+ mutation SyncBankAccounts(
171
+ $link: LinkMatchInput!
172
+ $accounts: [CustomAccountInput!]!
173
+ ) {
174
+ syncCustomAccounts(link: $link, accounts: $accounts) {
175
+ __typename
176
+ ... on SyncCustomAccountsResult {
177
+ accounts {
178
+ id
179
+ externalId
180
+ name
181
+ currency {
182
+ code
183
+ customCurrencyId
184
+ }
185
+ }
186
+ }
187
+ ... on BadRequestError {
188
+ code
189
+ message
190
+ }
191
+ ... on InternalError {
192
+ code
193
+ message
194
+ }
195
+ }
196
+ }
197
+
198
+ mutation MakeBankTransfer($bankTransfer: MakeBankTransferInput!, $ik: ID!) {
199
+ makeBankTransfer(bankTransfer: $bankTransfer, ik: $ik) {
200
+ __typename
201
+ ... on MakeBankTransferResult {
202
+ bankTransfer {
203
+ id
204
+ description
205
+ status
206
+ }
207
+ isIkReplay
208
+ }
39
209
  ... on Error {
40
210
  code
41
211
  message
@@ -108,22 +278,112 @@ query Ledger($ledger: LedgerMatchInput!) {
108
278
  }
109
279
  }
110
280
 
111
- # copied from https://fragment.dev/api-reference#mutation-addLedgerEntry
112
- mutation AddLedgerEntry($ik: ID!, $entry: LedgerEntryInput!) {
113
- addLedgerEntry(ik: $ik, entry: $entry) {
114
- ... on AddLedgerEntryResult {
115
- entry {
281
+ query GetLedgerAccounts(
282
+ $ledgerId: ID!
283
+ $after: String
284
+ $first: Int
285
+ $before: String
286
+ ) {
287
+ ledger(ledger: { id: $ledgerId }) {
288
+ id
289
+ name
290
+ ledgerAccounts(after: $after, first: $first, before: $before) {
291
+ nodes {
116
292
  id
293
+ name
294
+ type
295
+ }
296
+ pageInfo {
297
+ hasNextPage
298
+ endCursor
299
+ hasPreviousPage
300
+ startCursor
301
+ }
302
+ }
303
+ }
304
+ }
305
+
306
+ query GetAccountLinesOnDate(
307
+ $ledgerAccountId: ID!
308
+ $filter: LedgerLinesFilterSet
309
+ ) {
310
+ ledgerAccount(ledgerAccount: { id: $ledgerAccountId }) {
311
+ lines(filter: $filter) {
312
+ nodes {
313
+ id
314
+ posted
117
315
  date
316
+ amount
317
+ description
318
+ ledgerEntryId
118
319
  }
119
320
  }
120
- ... on BadRequestError {
121
- message
122
- code
321
+ }
322
+ }
323
+
324
+ query GetLedgerEntries($ledgerAccountId: ID!, $filter: LedgerLinesFilterSet) {
325
+ ledgerAccount(ledgerAccount: { id: $ledgerAccountId }) {
326
+ lines(filter: $filter) {
327
+ nodes {
328
+ id
329
+ posted
330
+ date
331
+ amount
332
+ description
333
+ ledgerEntryId
334
+ }
123
335
  }
124
- ... on InternalError {
125
- message
126
- code
336
+ }
337
+ }
338
+
339
+ query GetLinkedLedgerAccounts(
340
+ $ledgerId: ID!
341
+ $filter: LedgerAccountsFilterSet!
342
+ ) {
343
+ ledger(ledger: { id: $ledgerId }) {
344
+ id
345
+ ledgerAccounts(filter: $filter) {
346
+ nodes {
347
+ id
348
+ name
349
+ linkedAccount {
350
+ id
351
+ name
352
+ }
353
+ }
354
+ }
355
+ }
356
+ }
357
+
358
+ query GetBalances($ledgerId: ID!) {
359
+ ledger(ledger: { id: $ledgerId }) {
360
+ ledgerAccounts {
361
+ nodes {
362
+ id
363
+ name
364
+ type
365
+
366
+ ownBalance
367
+ childBalance
368
+ balance
369
+
370
+ childBalances {
371
+ nodes {
372
+ currency {
373
+ code
374
+ }
375
+ amount
376
+ }
377
+ }
378
+ balances {
379
+ nodes {
380
+ currency {
381
+ code
382
+ }
383
+ amount
384
+ }
385
+ }
386
+ }
127
387
  }
128
388
  }
129
389
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fragment-alpha-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - fragment