Class: Workarea::Search::Admin::User

Inherits:
Workarea::Search::Admin show all
Defined in:
app/models/workarea/search/admin/user.rb

Instance Method Summary collapse

Methods inherited from Workarea::Search::Admin

#created_at, for, #id, jump_to, #jump_to_param, #jump_to_route_helper, #jump_to_search_text, #releasable?, #sanitized_keywords, #status, #type, #updated_at

Methods included from Elasticsearch::Document

all, #as_bulk_document, current_index_prefix, #destroy, #initialize, #save

Instance Method Details

#as_documentObject



35
36
37
38
39
40
41
# File 'app/models/workarea/search/admin/user.rb', line 35

def as_document
  super.merge(
    total_orders: metrics.orders,
    total_spent: metrics.revenue,
    average_order_value: metrics.average_order_value
  )
end

#facetsObject



31
32
33
# File 'app/models/workarea/search/admin/user.rb', line 31

def facets
  super.merge(role: role)
end

#jump_to_positionObject



23
24
25
# File 'app/models/workarea/search/admin/user.rb', line 23

def jump_to_position
  1
end

#jump_to_textObject



17
18
19
20
21
# File 'app/models/workarea/search/admin/user.rb', line 17

def jump_to_text
  tmp = model.email.dup
  tmp << " - #{model.name}" unless model.name == model.email
  tmp
end

#keywordsObject



13
14
15
# File 'app/models/workarea/search/admin/user.rb', line 13

def keywords
  super + [model.email]
end

#metricsObject



43
44
45
# File 'app/models/workarea/search/admin/user.rb', line 43

def metrics
  @metrics ||= Metrics::User.find_or_initialize_by(id: model.email)
end

#nameObject



5
6
7
# File 'app/models/workarea/search/admin/user.rb', line 5

def name
  [model.last_name, model.first_name].reject(&:blank?).join(', ')
end

#search_textObject



9
10
11
# File 'app/models/workarea/search/admin/user.rb', line 9

def search_text
  UserText.new(model).text
end

#should_be_indexed?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'app/models/workarea/search/admin/user.rb', line 27

def should_be_indexed?
  !model.system?
end