Skip to content

Commit e0c757e

Browse files
committed
Rename CustomFilter into ModelFilter and add email filter
1 parent bd07aad commit e0c757e

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# see https://github.com/cerebris/jsonapi-resources/issues/460
2-
module CustomFilter
3-
def custom_filter(name, opts = {})
2+
module ModelFilter
3+
def model_filter(name, opts = {})
44
opts[:apply] = ->(records, value, _options) do
55
records.public_send(name, value)
66
end
77

88
filter name, opts
99
end
1010

11-
def custom_filters(*names)
12-
names.each { |name| custom_filter(name, names.extract_options!) }
11+
def model_filters(*names)
12+
names.each { |name| model_filter(name, names.extract_options!) }
1313
end
1414
end

app/models/user.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,6 @@ class User < ActiveRecord::Base
44
:recoverable, :rememberable, :trackable, :validatable,
55
:confirmable
66
include DeviseTokenAuth::Concerns::User
7+
8+
scope :email_contains, -> (value) { where('email ILIKE ?', "%#{value.join}%") }
79
end

app/resources/post_resource.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
class PostResource < JSONAPI::Resource
2-
extend CustomFilter
2+
extend ModelFilter
33

44
attributes :title, :created_at, :parts
55

@@ -9,5 +9,5 @@ class PostResource < JSONAPI::Resource
99
paginator :paged
1010

1111
filters :category
12-
custom_filter :title_contains
12+
model_filters :title_contains
1313
end

app/resources/user_resource.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
class UserResource < JSONAPI::Resource
2+
extend ModelFilter
23
attributes :email, :confirmed_at
34

45
paginator :paged
6+
model_filters :email_contains
57
end

0 commit comments

Comments
 (0)