From c3b4cbef5950eec05c49f72a253786faa30e1736 Mon Sep 17 00:00:00 2001 From: rainzm Date: Sat, 6 Mar 2021 01:06:17 +0800 Subject: [PATCH] fix(notify): enable filter of contact type 'email' and 'mobile' --- pkg/notify/models/receiver.go | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/pkg/notify/models/receiver.go b/pkg/notify/models/receiver.go index ba94de2911..3663d8a473 100644 --- a/pkg/notify/models/receiver.go +++ b/pkg/notify/models/receiver.go @@ -510,14 +510,29 @@ func (r *SReceiver) PushCache(ctx context.Context) error { } func (rm *SReceiverManager) EnabledContactFilter(contactType string, q *sqlchemy.SQuery) *sqlchemy.SQuery { - subQuery := SubContactManager.Query("receiver_id").Equals("type", contactType).IsTrue("enabled").SubQuery() - q = q.Join(subQuery, sqlchemy.Equals(subQuery.Field("receiver_id"), q.Field("id"))) + switch contactType { + case api.MOBILE: + q = q.IsTrue("enabled_mobile") + case api.EMAIL: + q = q.IsTrue("enabled_email") + default: + subQuery := SubContactManager.Query("receiver_id").Equals("type", contactType).IsTrue("enabled").SubQuery() + q = q.Join(subQuery, sqlchemy.Equals(subQuery.Field("receiver_id"), q.Field("id"))) + } return q } func (rm *SReceiverManager) VerifiedContactFilter(contactType string, q *sqlchemy.SQuery) *sqlchemy.SQuery { - subQuery := SubContactManager.Query("receiver_id").Equals("type", contactType).IsTrue("verified").SubQuery() - q = q.Join(subQuery, sqlchemy.Equals(subQuery.Field("receiver_id"), q.Field("id"))) + switch contactType { + case api.MOBILE: + q = q.IsTrue("verified_mobile") + case api.EMAIL: + q = q.IsTrue("verified_email") + default: + subQuery := SubContactManager.Query("receiver_id").Equals("type", contactType).IsTrue("verified").SubQuery() + q = q.Join(subQuery, sqlchemy.Equals(subQuery.Field("receiver_id"), q.Field("id"))) + + } return q }