Skip to content

Commit 62ab94a

Browse files
committed
feat(GetFieldTreeListTransaction): initial implementation + various refactores + examples
1 parent 0f8dc92 commit 62ab94a

14 files changed

+41
-35
lines changed

app/models/author_field_type.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,6 @@ def author_name_present
3030
end
3131

3232
def validate_presence?
33-
@validations.key? :presence
33+
validations.key? :presence
3434
end
3535
end

app/models/date_time_field_type.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ def timestamp_is_valid?
3535
end
3636

3737
def validate_presence?
38-
@validations.key? :presence
38+
validations.key? :presence
3939
end
4040
end

app/models/float_field_type.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
class FloatFieldType < FieldType
22
attr_accessor :float
3-
3+
44
validates :float, presence: true, if: Proc.new { |float| validate_key(:presence) }
55
validates_numericality_of :float, unless: "float.nil?"
66
validate :less_than, if: Proc.new { |float| validate_key(:max) }
@@ -27,14 +27,14 @@ def mapping_field_name
2727
end
2828

2929
def validate_key(key)
30-
@validations.key? key
30+
validations.key? key
3131
end
3232

3333
def less_than
34-
errors.add(:float, "must be less_than #{@validations[:max]}") if :float <= @validations[:max]
34+
errors.add(:float, "must be less_than #{validations[:max]}") if :float <= validations[:max]
3535
end
3636

3737
def greater_than
38-
errors.add(:float, "must be greater_than #{@validations[:min]}") if :float >= @validations[:min]
38+
errors.add(:float, "must be greater_than #{validations[:min]}") if :float >= validations[:min]
3939
end
4040
end

app/models/integer_field_type.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ def mapping_field_name
2727
end
2828

2929
def validate_key
30-
@validations.key? key
30+
validations.key? key
3131
end
3232

3333
def less_than
34-
errors.add(:integer, "must be less_than #{@validations[:max]}") if :integer <= @validations[:max]
34+
errors.add(:integer, "must be less_than #{validations[:max]}") if :integer <= validations[:max]
3535
end
3636

3737
def greater_than
38-
errors.add(:integer, "must be greater_than #{@validations[:min]}") if :integer >= @validations[:min]
38+
errors.add(:integer, "must be greater_than #{validations[:min]}") if :integer >= validations[:min]
3939
end
4040
end

app/models/tag_field_type.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ def mapping_field_name
2525
end
2626

2727
def validate_presence?
28-
@validations.key? :presence
28+
validations.key? :presence
2929
end
3030
end

app/models/text_field_type.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ def text_unique
3939
end
4040

4141
def validate_uniqueness?
42-
@validations.key? :uniqueness
42+
validations.key? :uniqueness
4343
end
4444

4545
def validate_presence?
46-
@validations.key? :presence
46+
validations.key? :presence
4747
end
4848

4949
def validate_length?
50-
@validations.key? :length
50+
validations.key? :length
5151
end
5252
end

app/models/tree_field_type.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def mapping_field_name
3636
end
3737

3838
def minimum
39-
if !@values.nil? && @values[:values].length >= @validations[:minimum]
39+
if !@values.nil? && @values[:values].length >= validations[:minimum]
4040
true
4141
else
4242
errors.add(:minimum, "You have selected too few values.")
@@ -46,7 +46,7 @@ def minimum
4646

4747
def maximum
4848
unless @values.nil?
49-
if @values[:values].length <= @validations[:maximum]
49+
if @values[:values].length <= validations[:maximum]
5050
true
5151
else
5252
errors.add(:maximum, "You have selected too many values.")
@@ -56,14 +56,14 @@ def maximum
5656
end
5757

5858
def validate_presence?
59-
@validations.key? :presence
59+
validations.key? :presence
6060
end
6161

6262
def validate_minimum?
63-
@validations.key? :minimum
63+
validations.key? :minimum
6464
end
6565

6666
def validate_maximum?
67-
@validations.key? :maximum
67+
validations.key? :maximum
6868
end
6969
end

app/models/user_field_type.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ def valid_user_id?
3434
end
3535

3636
def validate_presence?
37-
@validations.key? :presence
37+
validations.key? :presence
3838
end
3939
end

app/transactions/get_content_item_tags_transaction.rb

Whitespace-only changes.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class GetFieldTreeListTransaction < ApplicationTransaction
2+
step :init
3+
step :process
4+
5+
def init(input)
6+
field = Field.find_by_id(input[:args]['field_id'])
7+
8+
field ? Right({ content_item: input[:content_item], field: field }) : Left(:not_found)
9+
end
10+
11+
def process(input)
12+
tree_array = input[:field].metadata['allowed_values']['data']['tree_array']
13+
tree_values = input[:content_item].field_items.find {|field_item| field_item.field_id == input[:field].id}.data['values']
14+
15+
tree_list = tree_values.map {|value| tree_array.find {|node| node['id'] == value.to_i}['node']['name']}.join(',')
16+
Right(tree_list)
17+
end
18+
end

0 commit comments

Comments
 (0)