@@ -221,7 +221,17 @@ register creation' ua' = do
221221 Nothing -> throwError err500
222222
223223getUserAgent :: Maybe String -> T.Text
224−getUserAgent = fromMaybe "Unknown" . fmap osrFamily . join . fmap parseOS . fmap C.pack
224+getUserAgent uaData' = fromMaybe "Unknown" $ do
225+ uaData <- fmap C.pack uaData'
226+ let os = osrFamily <$> parseOS uaData
227+ let browser = uarFamily <$> parseUA uaData
228+ foldl mappendMaybe Nothing $ [os, browser]
229+ where
230+ mappendMaybe :: (Semigroup a) => Maybe a -> Maybe a -> Maybe a
231+ mappendMaybe Nothing (Just a) = Just a
232+ mappendMaybe (Just a) Nothing = Just a
233+ mappendMaybe (Just a) (Just b) = Just (a <> b)
234+ mappendMaybe Nothing Nothing = Nothing
225235
226236normalizaUser :: UserCreation -> UserCreation
227237normalizaUser (UserCreation fName mName lName faculty email) =