From 811f07a62c4b0fa6ce936500c4bcc3d30ebb8942 Mon Sep 17 00:00:00 2001 From: Anton Ignatov Date: Mon, 8 Apr 2019 15:07:45 +0200 Subject: [PATCH] Update API endpoints for new activities --- app/controllers/api/v1/tasks_controller.rb | 6 ++--- app/helpers/global_activities_helper.rb | 2 +- app/serializers/api/v1/activity_serializer.rb | 27 ++++++++++++++----- app/serializers/api/v1/user_serializer.rb | 3 +++ 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/app/controllers/api/v1/tasks_controller.rb b/app/controllers/api/v1/tasks_controller.rb index a948dfb4f..94250cb0b 100644 --- a/app/controllers/api/v1/tasks_controller.rb +++ b/app/controllers/api/v1/tasks_controller.rb @@ -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 diff --git a/app/helpers/global_activities_helper.rb b/app/helpers/global_activities_helper.rb index 2eeb96689..4205620c7 100644 --- a/app/helpers/global_activities_helper.rb +++ b/app/helpers/global_activities_helper.rb @@ -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 diff --git a/app/serializers/api/v1/activity_serializer.rb b/app/serializers/api/v1/activity_serializer.rb index eea3ef776..00cf6b7af 100644 --- a/app/serializers/api/v1/activity_serializer.rb +++ b/app/serializers/api/v1/activity_serializer.rb @@ -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 diff --git a/app/serializers/api/v1/user_serializer.rb b/app/serializers/api/v1/user_serializer.rb index e554b8895..2352b18c5 100644 --- a/app/serializers/api/v1/user_serializer.rb +++ b/app/serializers/api/v1/user_serializer.rb @@ -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 }