# HG changeset patch
# User Florent Aide <florent.aide@gmail.com>
# Date 1684091069 -7200
#      Sun May 14 21:04:29 2023 +0200
# Node ID 71b3c94262a3927944800dd03904734c6429b408
# Parent  f6841cca7df532a1e281166efab5e344e3a451af
add DeleteWhere

diff --git a/database/sql_helper.go b/database/sql_helper.go
--- a/database/sql_helper.go
+++ b/database/sql_helper.go
@@ -54,6 +54,7 @@
 }
 
 // GetWhere loads a mapped structure
+// ex: GetWhere(account, squirrel.Eq{models.AccountDBNameColumn: "somename"})
 func (h *SQLHelper) GetWhere(obj Mapped, pred interface{}, args ...interface{}) error {
 	query := SQ.
 		Select(obj.Columns(true)...).
@@ -63,6 +64,17 @@
 	return h.Get(obj, query)
 }
 
+// DeleteWhere deletes from a table corresponding to a mapped structure using the predicate and args
+// ex: DeleteWhere(account, squirrel.Eq{models.AccountDBNameColumn: "somename"})
+func (h *SQLHelper) DeleteWhere(obj Mapped, pred interface{}, args ...interface{}) error {
+	query := SQ.
+		Delete(obj.Table()).
+		Where(pred, args...)
+
+	_, err := h.Exec(query)
+	return err
+}
+
 // GetWhereForUpdate loads a mapped structure and get a lock
 // (see https://www.postgresql.org/docs/current/sql-select.html#SQL-FOR-UPDATE-SHARE)
 func (h *SQLHelper) GetWhereForUpdate(obj Mapped, pred interface{}, args ...interface{}) error {