gab-social/app/serializers/rest/group_serializer.rb

63 lines
1.3 KiB
Ruby
Raw Normal View History

2019-07-02 08:10:25 +01:00
# frozen_string_literal: true
class REST::GroupSerializer < ActiveModel::Serializer
include RoutingHelper
2020-11-15 18:48:32 +00:00
attributes :id, :title, :description, :description_html,
:cover_image_url, :is_archived, :member_count,
:created_at, :is_private, :is_visible, :slug,
:tags, :group_category, :password, :has_password
2019-07-02 08:10:25 +01:00
def id
object.id.to_s
end
def has_password
2020-11-25 21:22:37 +00:00
object.has_password?
end
def password
if !defined?(current_user) || current_user.nil?
return nil
end
if instance_options[:individual_group]
if object.group_accounts.where(account_id: current_user.account.id, role: :admin).exists?
object.password
else
nil
end
else
nil
end
end
def group_category
if object.group_categories
object.group_categories
end
end
def description
object.description
end
def description_html
Formatter.instance.formatGroupDescription(object.description).strip
end
2019-07-15 14:47:05 +01:00
def clean_migrated_url
object
.cover_image_file_name
.sub("gab://groups/", "https://gab.com/media/user/")
end
2019-07-02 08:10:25 +01:00
def cover_image_url
2019-07-15 14:47:05 +01:00
if object.cover_image_file_name and object.cover_image_file_name.start_with? "gab://groups/"
return clean_migrated_url
end
2019-07-02 08:10:25 +01:00
full_asset_url(object.cover_image.url)
end
end