delete comments and media files
This commit is contained in:
parent
5c01dbf185
commit
1d5925af56
3 changed files with 23 additions and 3 deletions
|
@ -162,8 +162,17 @@ postAlbumDeleteR albumId = do
|
||||||
albumList <- return $ userAlbums owner
|
albumList <- return $ userAlbums owner
|
||||||
newAlbumList <- return $ removeItem albumId albumList
|
newAlbumList <- return $ removeItem albumId albumList
|
||||||
runDB $ update ownerId [UserAlbums =. newAlbumList]
|
runDB $ update ownerId [UserAlbums =. newAlbumList]
|
||||||
-- delete album content
|
-- delete album content and its comments
|
||||||
mapM (\a -> runDB $ delete a) (albumContent album)
|
mapM (\a -> do
|
||||||
|
-- delete files
|
||||||
|
medium <- runDB $ getJust a
|
||||||
|
liftIO $ removeFile (normalise $ L.tail $ mediumPath medium)
|
||||||
|
liftIO $ removeFile (normalise $ L.tail $ mediumThumb medium)
|
||||||
|
-- delete comments
|
||||||
|
commEnts <- runDB $ selectList [CommentOrigin ==. a] []
|
||||||
|
mapM (\ent -> runDB $ delete $ entityKey ent) commEnts
|
||||||
|
runDB $ delete a
|
||||||
|
) (albumContent album)
|
||||||
-- delete album
|
-- delete album
|
||||||
runDB $ delete albumId
|
runDB $ delete albumId
|
||||||
-- delete files
|
-- delete files
|
||||||
|
|
|
@ -129,6 +129,9 @@ postMediumDeleteR mediumId = do
|
||||||
confirm <- lookupPostParam "confirm"
|
confirm <- lookupPostParam "confirm"
|
||||||
case confirm of
|
case confirm of
|
||||||
Just "confirm" -> do
|
Just "confirm" -> do
|
||||||
|
-- delete comments
|
||||||
|
commEnts <- runDB $ selectList [CommentOrigin ==. mediumId] []
|
||||||
|
mapM (\ent -> runDB $ delete $ entityKey ent) commEnts
|
||||||
-- delete references first
|
-- delete references first
|
||||||
albumId <- return $ mediumAlbum medium
|
albumId <- return $ mediumAlbum medium
|
||||||
album <- runDB $ getJust albumId
|
album <- runDB $ getJust albumId
|
||||||
|
|
|
@ -3,6 +3,7 @@ module Handler.ProfileDelete where
|
||||||
import Import
|
import Import
|
||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
|
import qualified Data.List as L
|
||||||
import System.Directory
|
import System.Directory
|
||||||
import System.FilePath
|
import System.FilePath
|
||||||
|
|
||||||
|
@ -50,7 +51,14 @@ postProfileDeleteR userId = do
|
||||||
mapM (\albumId -> do
|
mapM (\albumId -> do
|
||||||
album <- runDB $ getJust albumId
|
album <- runDB $ getJust albumId
|
||||||
mediaList <- return $ albumContent album
|
mediaList <- return $ albumContent album
|
||||||
mapM (\med -> runDB $ delete med) mediaList
|
mapM (\med -> do
|
||||||
|
commEnts <- runDB $ selectList [CommentOrigin ==. med] []
|
||||||
|
mapM (\ent -> runDB $ delete $ entityKey ent) commEnts
|
||||||
|
medium <- runDB $ getJust med
|
||||||
|
liftIO $ removeFile (normalise $ L.tail $ mediumPath medium)
|
||||||
|
liftIO $ removeFile (normalise $ L.tail $ mediumThumb medium)
|
||||||
|
runDB $ delete med
|
||||||
|
) mediaList
|
||||||
runDB $ delete albumId
|
runDB $ delete albumId
|
||||||
) albumList
|
) albumList
|
||||||
runDB $ delete userId
|
runDB $ delete userId
|
||||||
|
|
Loading…
Reference in a new issue