ledger_sync-domains 1.1.0 → 1.1.1
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/CHANGELOG.md +5 -0
- data/Gemfile.lock +1 -1
- data/lib/ledger_sync/domains/operation/query.rb +41 -0
- data/lib/ledger_sync/domains/serializer/{relation.rb → query.rb} +5 -6
- data/lib/ledger_sync/domains/serializer/struct.rb +2 -2
- data/lib/ledger_sync/domains/version.rb +1 -1
- data/lib/ledger_sync/domains.rb +1 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0132fdb2e9dd8a4142857cec51cea3fd6ebe68939701425921c80e550a6f494
|
4
|
+
data.tar.gz: 7286cb4c8019cf11b0be4b91c71404ea5e3752c543fe3510bc56bd99c50b0614
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad1039a526064cbbc9d2917c919758ada5f3b322945832986dbbd4f5dc14a3d0fa603e5c34ae83139c2e5ebf54709bcad3d08293e3bce8801b2086934077e51e
|
7
|
+
data.tar.gz: a35ef11c56f2aaebd6af85c9f5760f8e3f4ed3362d652860861c817fc4abb0687441400f43c418c3b3bf86f449909bf653d036d81684f10e2c2452cc75900faf
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [1.1.1] - 2022-03-17
|
4
|
+
|
5
|
+
- Feature: Refactor Relation into Query for use outside of relationships
|
6
|
+
- Feature: Add Query operation
|
7
|
+
|
3
8
|
## [1.1.0] - 2022-02-25
|
4
9
|
|
5
10
|
- Feature: Add and Update operations uses `data` params for setting model attributes
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../operation'
|
4
|
+
require_relative 'resource'
|
5
|
+
|
6
|
+
module LedgerSync
|
7
|
+
module Domains
|
8
|
+
class Operation
|
9
|
+
class Query < Resource
|
10
|
+
class Contract < LedgerSync::Ledgers::Contract
|
11
|
+
params do
|
12
|
+
required(:query).value(:hash)
|
13
|
+
required(:limit).value(:hash)
|
14
|
+
required(:includes).value(:array)
|
15
|
+
required(:order).value(:string)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def operate
|
22
|
+
success(query)
|
23
|
+
end
|
24
|
+
|
25
|
+
def resources
|
26
|
+
@resources ||= resource_class.where(params[:limit])
|
27
|
+
.where(params[:query])
|
28
|
+
.includes(params[:includes])
|
29
|
+
.order(params[:order])
|
30
|
+
end
|
31
|
+
|
32
|
+
def query
|
33
|
+
LedgerSync::Domains::Serializer::Query.new(
|
34
|
+
serializer: params[:serializer] || serializer_for(resource: resource_class.new),
|
35
|
+
query: resources
|
36
|
+
)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -3,9 +3,9 @@
|
|
3
3
|
module LedgerSync
|
4
4
|
module Domains
|
5
5
|
class Serializer < LedgerSync::Serializer
|
6
|
-
class
|
7
|
-
def initialize(serializer:,
|
8
|
-
@query =
|
6
|
+
class Query
|
7
|
+
def initialize(serializer:, query:)
|
8
|
+
@query = query
|
9
9
|
@serializer = serializer
|
10
10
|
end
|
11
11
|
|
@@ -109,10 +109,9 @@ module LedgerSync
|
|
109
109
|
|
110
110
|
class SerializerReferencesManyType
|
111
111
|
def proxy(serializer:, resource:, attribute:)
|
112
|
-
|
112
|
+
Query.new(
|
113
113
|
serializer: serializer,
|
114
|
-
|
115
|
-
attribute: attribute
|
114
|
+
query: resource.try(attribute)
|
116
115
|
)
|
117
116
|
end
|
118
117
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative '
|
3
|
+
require_relative 'query'
|
4
4
|
|
5
5
|
module LedgerSync
|
6
6
|
module Domains
|
@@ -23,7 +23,7 @@ module LedgerSync
|
|
23
23
|
define_method('to_hash') { hash }
|
24
24
|
references.each do |args|
|
25
25
|
define_method(args.hash_attribute) do
|
26
|
-
|
26
|
+
Query.const_get(
|
27
27
|
args.type.class.to_s.split('::').last
|
28
28
|
).new.proxy(
|
29
29
|
serializer: args.type.serializer.new,
|
data/lib/ledger_sync/domains.rb
CHANGED
@@ -8,6 +8,7 @@ require_relative 'domains/operation'
|
|
8
8
|
require_relative 'domains/operation/resource'
|
9
9
|
require_relative 'domains/operation/add'
|
10
10
|
require_relative 'domains/operation/find'
|
11
|
+
require_relative 'domains/operation/query'
|
11
12
|
require_relative 'domains/operation/remove'
|
12
13
|
require_relative 'domains/operation/search'
|
13
14
|
require_relative 'domains/operation/transition'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ledger_sync-domains
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jozef Vaclavik
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ledger_sync
|
@@ -91,13 +91,14 @@ files:
|
|
91
91
|
- lib/ledger_sync/domains/operation.rb
|
92
92
|
- lib/ledger_sync/domains/operation/add.rb
|
93
93
|
- lib/ledger_sync/domains/operation/find.rb
|
94
|
+
- lib/ledger_sync/domains/operation/query.rb
|
94
95
|
- lib/ledger_sync/domains/operation/remove.rb
|
95
96
|
- lib/ledger_sync/domains/operation/resource.rb
|
96
97
|
- lib/ledger_sync/domains/operation/search.rb
|
97
98
|
- lib/ledger_sync/domains/operation/transition.rb
|
98
99
|
- lib/ledger_sync/domains/operation/update.rb
|
99
100
|
- lib/ledger_sync/domains/serializer.rb
|
100
|
-
- lib/ledger_sync/domains/serializer/
|
101
|
+
- lib/ledger_sync/domains/serializer/query.rb
|
101
102
|
- lib/ledger_sync/domains/serializer/struct.rb
|
102
103
|
- lib/ledger_sync/domains/store.rb
|
103
104
|
- lib/ledger_sync/domains/version.rb
|