fix(notify): enable filter of contact type 'email' and 'mobile'

This commit is contained in:
rainzm
2021-03-06 01:06:17 +08:00
parent b03d01fa01
commit c3b4cbef59
+19 -4
View File
@@ -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
}