@@ -229,6 +229,9 @@ dummyFromUnique _ = Nothing
229229dummyFromFilter :: Filter v -> Maybe v
230230dummyFromFilter _ = Nothing
231231
232+dummyFromFilters :: [Filter v] -> Maybe v
233+dummyFromFilters _ = Nothing
234+
232235dummyFromUpdate :: DPT.Update v -> Maybe v
233236dummyFromUpdate _ = Nothing
234237
@@ -453,6 +456,17 @@ instance PersistQuery C.Connection where
453456 Left err -> Trans.liftIO $ throwIO $ PersistError "updateWhere pooped"
454457 Right () -> return ()
455458
456−
457−
458−
459+ deleteWhere filters = do
460+ conn <- ask
461+ e <- runEitherT $ do
462+ restrictionPredicate <- hoistEither $ multiFilterAsRestrictionPredicate True filters
463+ let entDef = entityDef $ dummyFromFilters filters
464+ relVarName = unDBName $ entityDB entDef
465+ deleteExpr = Delete relVarName restrictionPredicate
466+ maybeErr <- Trans.liftIO $ C.executeDatabaseContextExpr conn deleteExpr
467+ case maybeErr of
468+ Just err -> left err
469+ Nothing -> right ()
470+ case e of
471+ Left err -> Trans.liftIO $ throwIO $ PersistError "updateWhere pooped"
472+ Right () -> return ()