xsdk-scaffold-rails 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b1b74ace7103e51684bda44a1ce6fdde5cfe25562015c6825cbb63afc3e2706
4
- data.tar.gz: 22a1992738b3a78f5e9f3c3cc1f0c2e0e45d7bdeffcf7b20d2cea5842e52d988
3
+ metadata.gz: 108cdf26bc4f923371e65b2a9b9f2a5329e6873cca09ae947060b6937d57bbef
4
+ data.tar.gz: b2af28bc2f01ff06ba271482a0e62a83ee8f9ff904f2e07e3fa8a792223430c3
5
5
  SHA512:
6
- metadata.gz: 4d1ad222a5c2e92c128a180641962f7592972592381f807c5061727da384d767dbc4093246e490cede678ecacc3f9941d2db20e2d7b5d7438f7fc06e59d4424a
7
- data.tar.gz: cdf22047a4e6c4da9d15a7dc285e30b4b2652e5a3394e8be6f61f76d0edb08ade62b5ca7010b61525e27f234f949d019f70038bd76b80087d4a50a55ec765eb6
6
+ metadata.gz: 147f2ddd341e232b7bc2892aec51abec222ffaded11d6557385e202c1983e9d8318236edfde503bae09b620b73d0f43b43d15125d1beba954f1e28a525c80556
7
+ data.tar.gz: 816c60a6133969e2120ff2c417dee9acd1aeba8060d86a952b3c4b3fc72e6551bc7af1b98bf21616d309765f1c9909f9c200e5c7b8538d943cc86f467eae6e18
@@ -25,9 +25,13 @@ module Xsdk
25
25
  def paginate(data)
26
26
  per_page = @options[:itemsPerPage]
27
27
  page = @options[:page] - 1
28
+ sort = @options[:sortBy]
29
+ direction = @options[:sortDesc]
30
+ order_string = sort.map.with_index { |k, idx| "#{sorting_map[k.to_sym]} #{direction[idx] ? 'DESC' : 'ASC'}" }
28
31
  data.limit(per_page)
29
32
  .offset(page * per_page)
30
- .as_json(methods: enum_methods, except: keys_to_exclude, include: has_many_include)
33
+ .order(order_string)
34
+ .as_json(methods: methods + enum_methods, except: keys_to_exclude, include: has_many_include)
31
35
  end
32
36
 
33
37
  def keys_to_exclude
@@ -179,6 +183,10 @@ module Xsdk
179
183
  []
180
184
  end
181
185
 
186
+ def methods
187
+ []
188
+ end
189
+
182
190
  def get_table(c)
183
191
  ax = associations.with_indifferent_access
184
192
  if @foreign_keys.key?(c)
@@ -254,6 +262,20 @@ module Xsdk
254
262
  def associations
255
263
  {}
256
264
  end
265
+
266
+ def sorting_map
267
+ build_headers.map do |h|
268
+ if h[:type] == 'foreign_key'
269
+ [h[:value].to_sym, "#{h[:table]}.#{h[:source]}"]
270
+ elsif h[:type] == 'enum'
271
+ ["#{h[:value]}_text".to_sym, "#{h[:table]}.#{h[:table_value]}"]
272
+ elsif h[:type].nil? || h[:value] == 'actions'
273
+ [nil]
274
+ else
275
+ [h[:value].to_sym, "#{h[:table]}.#{h[:table_value]}"]
276
+ end
277
+ end.filter { |a| a[0] }.to_h
278
+ end
257
279
  end
258
280
  end
259
281
  end
@@ -1,7 +1,7 @@
1
1
  module Xsdk
2
2
  module Scaffold
3
3
  module Rails
4
- VERSION = "0.1.7"
4
+ VERSION = "0.1.8"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xsdk-scaffold-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Davide Croci
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-09 00:00:00.000000000 Z
11
+ date: 2021-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord