Class: Decidim::Core::UserEntityInputFilter

Inherits:
BaseInputFilter
  • Object
show all
Defined in:
decidim-core/lib/decidim/api/input_filters/user_entity_input_filter.rb

Class Method Summary collapse

Class Method Details

.prepare_exclude_ids(value, _ctx) ⇒ Object



57
58
59
60
61
62
63
# File 'decidim-core/lib/decidim/api/input_filters/user_entity_input_filter.rb', line 57

def self.prepare_exclude_ids(value, _ctx)
  [
    lambda do |model_class, _locale|
      model_class.arel_table[:id].not_in(value)
    end
  ]
end

.prepare_name(value, _ctx) ⇒ Object



49
50
51
52
53
54
55
# File 'decidim-core/lib/decidim/api/input_filters/user_entity_input_filter.rb', line 49

def self.prepare_name(value, _ctx)
  [
    lambda do |model_class, _locale|
      model_class.arel_table[:name].matches("%#{value}%")
    end
  ]
end

.prepare_nickname(value, _ctx) ⇒ Object



40
41
42
43
44
45
46
47
# File 'decidim-core/lib/decidim/api/input_filters/user_entity_input_filter.rb', line 40

def self.prepare_nickname(value, _ctx)
  value = value[1..-1] if value.starts_with? "@"
  [
    lambda do |model_class, _locale|
      model_class.arel_table[:nickname].matches("%#{value}%")
    end
  ]
end

.prepare_wildcard(value, _ctx) ⇒ Object



65
66
67
68
69
70
71
72
73
74
# File 'decidim-core/lib/decidim/api/input_filters/user_entity_input_filter.rb', line 65

def self.prepare_wildcard(value, _ctx)
  value = value[1..-1] if value.starts_with? "@"
  [
    lambda do |model_class, _locale|
      op_name = model_class.arel_table[:name].matches("%#{value}%")
      op_nick = model_class.arel_table[:nickname].matches("%#{value}%")
      op_name.or(op_nick)
    end
  ]
end