Skip to content

Commit

Permalink
calculate scanned badges
Browse files Browse the repository at this point in the history
  • Loading branch information
jaspervdj committed Jun 11, 2023
1 parent cecd129 commit ac3172d
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 9 deletions.
14 changes: 8 additions & 6 deletions lib/Zureg/Database.hs
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@ data RegistrantsSummary = RegistrantsSummary
, rsConfirmed :: Int
, rsAttending :: Int
, rsAvailable :: Int
, rsScanned :: Int
} deriving (Show)

$(A.deriveJSON A.options ''RegistrantsSummary)
Expand All @@ -175,19 +176,20 @@ registrantsSummaryToAttributeValue
:: RegistrantsSummary -> DynamoDB.AttributeValue
registrantsSummaryToAttributeValue RegistrantsSummary {..} =
DynamoDB.attributeValue & DynamoDB.avM .~ HMS.fromList
[ ("total", avi rsTotal),
("waiting", avi rsWaiting ),
("confirmed", avi rsConfirmed),
("attending", avi rsAttending),
("available", avi rsAvailable)
[ ("total", avi rsTotal)
, ("waiting", avi rsWaiting)
, ("confirmed", avi rsConfirmed)
, ("attending", avi rsAttending)
, ("available", avi rsAvailable)
, ("scanned", avi rsScanned)
]


registrantsSummaryFromAttributeValue
:: DynamoDB.AttributeValue -> Maybe RegistrantsSummary
registrantsSummaryFromAttributeValue av = RegistrantsSummary
<$> getInt "total" <*> getInt "waiting" <*> getInt "confirmed"
<*> getInt "attending" <*> getInt "available"
<*> getInt "attending" <*> getInt "available" <*> getInt "scanned"
where
getInt :: T.Text -> Maybe Int
getInt key = do
Expand Down
9 changes: 6 additions & 3 deletions lib/Zureg/Main/Janitor.hs
Original file line number Diff line number Diff line change
Expand Up @@ -67,15 +67,17 @@ main hackathon =
waitingRegistrants = waitingListUUIDs registrants
registrantsToPop = take freeSpaces waitingRegistrants
freeSpacesLeft = freeSpaces - length registrantsToPop
scanned = length $ filter rScanned registrants

popWaitinglistUUIDs hackathon registrantsToPop

let summary = Database.RegistrantsSummary
{ Database.rsTotal = length registrants
, Database.rsWaiting = countByState isWaiting registrants
{ Database.rsTotal = length registrants
, Database.rsWaiting = countByState isWaiting registrants
, Database.rsConfirmed = countByState isConfirmed registrants
, Database.rsAttending = attending
, Database.rsAvailable = freeSpacesLeft
, Database.rsScanned = scanned
}

Database.putRegistrantsSummary db summary
Expand All @@ -86,7 +88,8 @@ renderSummary rs = show (Database.rsTotal rs) ++ " total, " ++
show (Database.rsWaiting rs) ++ " waiting, " ++
show (Database.rsAttending rs) ++ " attending, " ++
show (Database.rsConfirmed rs) ++ " confirmed, " ++
show (Database.rsAvailable rs) ++ " available"
show (Database.rsAvailable rs) ++ " available, " ++
show (Database.rsScanned rs) ++ " scanned"

-- This is to put Nothings to the end of a sorted list
newtype Fifo = Fifo (Maybe Time.UTCTime) deriving Eq
Expand Down

0 comments on commit ac3172d

Please sign in to comment.