Class: AdminUserActionSerializer

Inherits:
ApplicationSerializer show all
Includes:
PostItemExcerpt
Defined in:
app/serializers/admin_user_action_serializer.rb

Instance Method Summary collapse

Methods included from PostItemExcerpt

#cooked, #excerpt, #include_truncated?, included, #truncated

Methods inherited from ApplicationSerializer

expire_cache_fragment!, fragment_cache

Methods inherited from ActiveModel::Serializer

#include!

Instance Method Details

#action_typeObject



79
80
81
82
83
84
85
86
# File 'app/serializers/admin_user_action_serializer.rb', line 79

def action_type
  object
    .
    .select { |ua| ua.user_id = object.user_id }
    .select { |ua| [UserAction::REPLY, UserAction::RESPONSE].include? ua.action_type }
    .first
    .try(:action_type)
end

#avatar_templateObject



50
51
52
# File 'app/serializers/admin_user_action_serializer.rb', line 50

def avatar_template
  object.user.avatar_template
end

#category_idObject



62
63
64
# File 'app/serializers/admin_user_action_serializer.rb', line 62

def category_id
  topic&.category_id
end

#deletedObject



34
35
36
# File 'app/serializers/admin_user_action_serializer.rb', line 34

def deleted
  deleted_at.present?
end

#deleted_byObject



71
72
73
# File 'app/serializers/admin_user_action_serializer.rb', line 71

def deleted_by
  BasicUserSerializer.new(object.deleted_by, root: false).as_json
end

#include_deleted_by?Boolean

Returns:

  • (Boolean)


75
76
77
# File 'app/serializers/admin_user_action_serializer.rb', line 75

def include_deleted_by?
  object.trashed?
end

#include_name?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'app/serializers/admin_user_action_serializer.rb', line 42

def include_name?
  SiteSetting.enable_names?
end

#moderator_actionObject



66
67
68
69
# File 'app/serializers/admin_user_action_serializer.rb', line 66

def moderator_action
  object.post_type == Post.types[:moderator_action] ||
    object.post_type == Post.types[:small_action]
end

#nameObject



38
39
40
# File 'app/serializers/admin_user_action_serializer.rb', line 38

def name
  object.user.name
end

#post_idObject



30
31
32
# File 'app/serializers/admin_user_action_serializer.rb', line 30

def post_id
  object.id
end

#slugObject



54
55
56
# File 'app/serializers/admin_user_action_serializer.rb', line 54

def slug
  topic&.slug
end

#titleObject



58
59
60
# File 'app/serializers/admin_user_action_serializer.rb', line 58

def title
  topic&.title
end

#topicObject

we need this to handle deleted topics which aren’t loaded via Topic.unscoped do

Post.includes(:topic)

end because Rails 4 “unscoped” support is still bugged (cf. github.com/rails/rails/issues/13775)



93
94
95
96
# File 'app/serializers/admin_user_action_serializer.rb', line 93

def topic
  return @topic if @topic
  @topic = object.topic || Topic.with_deleted.find_by_id(object.topic_id)
end

#usernameObject



46
47
48
# File 'app/serializers/admin_user_action_serializer.rb', line 46

def username
  object.user.username
end