From 97f5b958b3d86f85425c3bf9d505c446b64df492 Mon Sep 17 00:00:00 2001 From: Kassian Sun Date: Mon, 3 Apr 2023 18:45:34 +0800 Subject: [PATCH] [notification] /read add types param --- plugin/api/notification/notification.go | 44 ++++++++++++++++++++----- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/plugin/api/notification/notification.go b/plugin/api/notification/notification.go index 9dc3c1d4..51e4a6aa 100644 --- a/plugin/api/notification/notification.go +++ b/plugin/api/notification/notification.go @@ -69,7 +69,8 @@ func (h *NotificationAPI) listNotifications(w http.ResponseWriter, req *http.Req } type SetNotificationsReadRequest struct { - Ids []string `json:"ids"` + Ids []string `json:"ids"` + Types []model.NotificationType `json:"types"` } func (h *NotificationAPI) setNotificationsRead(w http.ResponseWriter, req *http.Request, ps httprouter.Params) { @@ -98,20 +99,45 @@ func (h *NotificationAPI) setNotificationsRead(w http.ResponseWriter, req *http. queryDsl := util.MapStr{ "query": util.MapStr{ "bool": util.MapStr{ - "must": []util.MapStr{ - { - "terms": util.MapStr{ - "_id": reqData.Ids, + "should": []util.MapStr{ + util.MapStr{ + "bool": util.MapStr{ + "must": []util.MapStr{ + { + "terms": util.MapStr{ + "_id": reqData.Ids, + }, + }, + { + "term": util.MapStr{ + "status": util.MapStr{ + "value": model.NotificationStatusNew, + }, + }, + }, + }, }, }, - { - "term": util.MapStr{ - "status": util.MapStr{ - "value": model.NotificationStatusNew, + util.MapStr{ + "bool": util.MapStr{ + "must": []util.MapStr{ + { + "terms": util.MapStr{ + "notification_type": reqData.Types, + }, + }, + { + "term": util.MapStr{ + "status": util.MapStr{ + "value": model.NotificationStatusNew, + }, + }, + }, }, }, }, }, + "minimum_should_match": 1, }, }, "script": util.MapStr{