Merge pull request #1650 from aignatov-bio/ai-sci-3295-update-api-endpoints-new-activities

Update API endpoints for new activities [SCI-3295]
This commit is contained in:
aignatov-bio 2019-04-10 13:46:30 +02:00 committed by GitHub
commit cfbb2a83a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 11 deletions

View file

@ -24,9 +24,9 @@ module Api
end
def activities
activities = @task.activities
.page(params.dig(:page, :number))
.per(params.dig(:page, :size))
activities = ActivitiesService.my_module_activities(@task)
.page(params.dig(:page, :number))
.per(params.dig(:page, :size))
render jsonapi: activities,
each_serializer: ActivitySerializer

View file

@ -88,7 +88,7 @@ module GlobalActivitiesHelper
return message_item[:value] unless obj
value = obj.public_send(message_item[:value_for] || 'name')
value = t('global_activities.index.no_name') if value.blank?
value = I18n.t('global_activities.index.no_name') if value.blank?
value
end

View file

@ -3,16 +3,29 @@
module Api
module V1
class ActivitySerializer < ActiveModel::Serializer
include ActionView::Helpers::TextHelper
include ApplicationHelper
include GlobalActivitiesHelper
def self.serializer_for(model, options)
return TaskSerializer if model.class == MyModule
super
end
type :activities
attributes :id, :type_of, :message
belongs_to :project, serializer: ProjectSerializer
belongs_to :experiment, serializer: ExperimentSerializer,
if: -> { object.experiment.present? }
belongs_to :my_module, key: :task,
serializer: TaskSerializer,
class_name: 'MyModule',
if: -> { object.my_module.present? }
belongs_to :user, serializer: UserSerializer
belongs_to :subject, polymorphic: true
belongs_to :owner, key: :user, serializer: UserSerializer
def message
if object.old_activity?
object.message
else
generate_activity_content(object, true)
end
end
end
end
end

View file

@ -1,6 +1,9 @@
# frozen_string_literal: true
module Api
module V1
class UserSerializer < ActiveModel::Serializer
type :users
attributes :full_name, :initials, :email
attribute :avatar_file_name,
if: -> { object.avatar.present? } { object.avatar_file_name }