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,7 +24,7 @@ module Api
end end
def activities def activities
activities = @task.activities activities = ActivitiesService.my_module_activities(@task)
.page(params.dig(:page, :number)) .page(params.dig(:page, :number))
.per(params.dig(:page, :size)) .per(params.dig(:page, :size))

View file

@ -88,7 +88,7 @@ module GlobalActivitiesHelper
return message_item[:value] unless obj return message_item[:value] unless obj
value = obj.public_send(message_item[:value_for] || 'name') 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 value
end end

View file

@ -3,16 +3,29 @@
module Api module Api
module V1 module V1
class ActivitySerializer < ActiveModel::Serializer 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 type :activities
attributes :id, :type_of, :message attributes :id, :type_of, :message
belongs_to :project, serializer: ProjectSerializer belongs_to :project, serializer: ProjectSerializer
belongs_to :experiment, serializer: ExperimentSerializer, belongs_to :subject, polymorphic: true
if: -> { object.experiment.present? } belongs_to :owner, key: :user, serializer: UserSerializer
belongs_to :my_module, key: :task,
serializer: TaskSerializer, def message
class_name: 'MyModule', if object.old_activity?
if: -> { object.my_module.present? } object.message
belongs_to :user, serializer: UserSerializer else
generate_activity_content(object, true)
end
end
end end
end end
end end

View file

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