mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-02-11 17:36:13 +08:00
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:
commit
cfbb2a83a6
4 changed files with 27 additions and 11 deletions
|
@ -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))
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 }
|
||||||
|
|
Loading…
Reference in a new issue