chore(lms): wip handler dispatch enqueue
This commit is contained in:
parent
04c64b2599
commit
e669e495f9
@ -15,43 +15,50 @@ import qualified Database.Esqueleto.Experimental as E
|
|||||||
-- import qualified Database.Esqueleto.PostgreSQL as E -- for insertSelect variant
|
-- import qualified Database.Esqueleto.PostgreSQL as E -- for insertSelect variant
|
||||||
import qualified Database.Esqueleto.Utils as E
|
import qualified Database.Esqueleto.Utils as E
|
||||||
|
|
||||||
import Handler.Utils.DateTime (addDiffDays)
|
-- import Handler.Utils.DateTime (addDiffDays)
|
||||||
|
|
||||||
dispatchJobLmsEnqueue :: QualificationId -> JobHandler UniWorX
|
dispatchJobLmsEnqueue :: QualificationId -> JobHandler UniWorX
|
||||||
dispatchJobLmsEnqueue qid = JobHandlerAtomic act
|
dispatchJobLmsEnqueue _qid = JobHandlerAtomic act
|
||||||
where
|
where
|
||||||
-- act :: YesodJobDB UniWorX ()
|
-- act :: YesodJobDB UniWorX ()
|
||||||
act = hoist lift $ do
|
act = hoist lift $ do
|
||||||
|
{-
|
||||||
now <- liftIO getCurrentTime
|
now <- liftIO getCurrentTime
|
||||||
Just (Entity _ quali) <- E.selectOne $ E.from $ \quali -> E.where_ (quali E.^. QualificationId E.==. E.val qid) >> pure quali
|
mbq <- E.selectOne $ E.from $ \quali -> E.where_ (quali E.^. QualificationId E.==. E.val qid) >> pure quali
|
||||||
-- Just quali <- get qid
|
-- Just quali <- get qid
|
||||||
let Just refreshTime = qualificationRefreshWithin quali -- HACK / TODO
|
|
||||||
|
let (Entity _ quali) = fromMaybe (error "TODO") mbq -- HACK / TODO
|
||||||
|
refreshTime = fromMaybe (error "TODO") $ qualificationRefreshWithin quali -- HACK / TODO
|
||||||
freshIdent = LmsIdent "abcd" -- TODO
|
freshIdent = LmsIdent "abcd" -- TODO
|
||||||
freshPin = "1234" -- TODO
|
freshPin = "1234" -- TODO
|
||||||
cutoff = addDiffDays refreshTime now
|
cutoff = addDiffDays refreshTime now
|
||||||
res <- E.insertSelect $ do
|
|
||||||
quser <- from (E.table @QualificationUser)
|
E.insertSelect ( do
|
||||||
E.where_ ( quser E.^. QualificationUserQualification E.==. E.val qid
|
quser <- E.from (E.table @QualificationUser)
|
||||||
E.&&. quser E.^. QualificationUserValidUntil E.>=. E.val now
|
E.where_ ( quser E.^. QualificationUserQualification E.==. E.val qid
|
||||||
E.&&. quser E.^. QualificationUserValidUntil E.<=. E.val cutoff
|
E.&&. quser E.^. QualificationUserValidUntil E.>=. E.val now
|
||||||
)
|
E.&&. quser E.^. QualificationUserValidUntil E.<=. E.val cutoff
|
||||||
-- and not exists already as LMS User
|
-- and not exists already as LMS User
|
||||||
return $ LmsUser
|
)
|
||||||
E.<# E.val qid
|
|
||||||
E.<&> (quser E.^. QualificationUserUser)
|
return $ LmsUser
|
||||||
E.<&> E.val freshIdent -- ident -- THIS IS A PROBLEM! MUST ALSO BE UNIQUE!
|
E.<# E.val qid
|
||||||
E.<&> E.val freshPin -- pin -- THIS IS A PROBLEM!
|
E.<&> (quser E.^. QualificationUserUser)
|
||||||
E.<&> E.false -- reset
|
E.<&> E.val freshIdent -- ident -- THIS IS A PROBLEM! MUST ALSO BE UNIQUE!
|
||||||
E.<&> E.nothing -- status
|
E.<&> E.val freshPin -- pin -- THIS IS A PROBLEM!
|
||||||
E.<&> E.val now -- started
|
E.<&> E.false -- reset
|
||||||
E.<&> E.nothing -- received
|
E.<&> E.nothing -- status
|
||||||
E.<&> E.nothing -- ended
|
E.<&> E.val now -- started
|
||||||
|
E.<&> E.nothing -- received
|
||||||
|
E.<&> E.nothing -- ended
|
||||||
|
)
|
||||||
|
|
||||||
-- find qualification holders
|
-- find qualification holders
|
||||||
|
-}
|
||||||
error "lms dequeu stub"
|
error "lms dequeu stub"
|
||||||
|
|
||||||
dispatchJobLmsDequeue :: QualificationId -> JobHandler UniWorX
|
dispatchJobLmsDequeue :: QualificationId -> JobHandler UniWorX
|
||||||
dispatchJobLmsDequeue qid =
|
dispatchJobLmsDequeue _qid =
|
||||||
-- wenn bestanden: qualification verlängern & LmsIdent löschen
|
-- wenn bestanden: qualification verlängern & LmsIdent löschen
|
||||||
-- wenn durchgefallen: LmsIdent löschen
|
-- wenn durchgefallen: LmsIdent löschen
|
||||||
-- wenn Zeit abgelaufen: LmsIdent löschen
|
-- wenn Zeit abgelaufen: LmsIdent löschen
|
||||||
|
|||||||
Reference in New Issue
Block a user