diff --git a/app/controllers/users/messages_controller.rb b/app/controllers/users/messages_controller.rb index 5116f580..cf3d2554 100644 --- a/app/controllers/users/messages_controller.rb +++ b/app/controllers/users/messages_controller.rb @@ -6,7 +6,17 @@ class Users::MessagesController < Users::BaseController limit = params[:limit] || params[:per_page] limit = (limit.to_i.zero? || limit.to_i > 15) ? 15 : limit.to_i page = params[:page].to_i.zero? ? 1 : params[:page].to_i - result = Notice::Read::ListService.call(observed_user.id, message_type, message_status, page, limit) + sources = params[:sources].join(",") rescue "" + case params[:source_type].to_i + when 1 + sources = "CustomTip,FollowTip,IssueAssigned,IssueAtme,IssueChanged,IssueExpire,IssueDeleted,OrganizationJoined,OrganizationLeft,ProjectForked,ProjectIssue,ProjectJoined,ProjectLeft,ProjectMemberJoined,ProjectMemberLeft,ProjectMilestoneCompleted,ProjectMilestone,ProjectPraised,ProjectPullRequest,ProjectRole,ProjectSettingChanged,PullRequestAssigned,PullRequestAtme,PullRequestChanged,PullRequestClosed,PullRequestMerged,TeamJoined,TeamLeft" + when 2 + sources = "TaskPassed,TaskCollecting,TaskChoosing,TaskMakePublic,PapersMakePublic,TaskSigning,TaskPaying,TaskDone,TaskDelaying" + when 3 + sources = "CompetitionBegin,CompetitionReview,CompetitionResult" + when 4 + sources = "ExpertRegisterPassed,NewExpertReviewTaskAssigned,ExpertReviewEnd" + result = Notice::Read::ListService.call(observed_user.id, params[:sources], message_type, message_status, page, limit) return render_error if result.nil? @data = result[2] end diff --git a/app/services/notice/read/list_service.rb b/app/services/notice/read/list_service.rb index 3f6645d7..c5a453ce 100644 --- a/app/services/notice/read/list_service.rb +++ b/app/services/notice/read/list_service.rb @@ -1,12 +1,13 @@ class Notice::Read::ListService < Notice::Read::ClientService - attr_accessor :receiver, :type, :status, :page, :size + attr_accessor :receiver, :type, :status, :page, :size, :sources - def initialize(receiver, type=-1, status=2, page=1, size=15) + def initialize(receiver, sources="", type=-1, status=2, page=1, size=15) @receiver = receiver @type = type @status = status @page = page @size = size + @sources = sources end def call @@ -17,13 +18,15 @@ class Notice::Read::ListService < Notice::Read::ClientService private def request_params - { + params = { receiver: receiver, page: page, status: status, size: size, type: type - }.stringify_keys + } + params.merge!(sources: sources) if sources.present? + return params.stringify_keys end def url