use named record constructors

This commit is contained in:
Jon Schoning 2020-06-15 01:54:37 -05:00 committed by Yann Esposito (Yogsototh)
parent d0d53d27f5
commit a0e107e7c0
Signed by untrusted user who does not match committer: yogsototh
GPG key ID: 7B19A4C650D59646
3 changed files with 104 additions and 90 deletions

View file

@ -135,25 +135,27 @@ _toNote userId NoteForm {..} = do
slug <- maybe mkNtSlug pure _slug slug <- maybe mkNtSlug pure _slug
pure $ pure $
Note Note
userId { noteUserId = userId
slug , noteSlug = slug
(length _text) , noteLength = length _text
(fromMaybe "" _title) , noteTitle = fromMaybe "" _title
(maybe "" unTextarea _text) , noteText = maybe "" unTextarea _text
(fromMaybe False _isMarkdown) , noteIsMarkdown = fromMaybe False _isMarkdown
(fromMaybe False _shared) , noteShared = fromMaybe False _shared
(fromMaybe time (fmap unUTCTimeStr _created)) , noteCreated = fromMaybe time (fmap unUTCTimeStr _created)
(fromMaybe time (fmap unUTCTimeStr _updated)) , noteUpdated = fromMaybe time (fmap unUTCTimeStr _updated)
}
noteToRssEntry :: UserNameP -> Entity Note -> FeedEntry (Route App) noteToRssEntry :: UserNameP -> Entity Note -> FeedEntry (Route App)
noteToRssEntry usernamep (Entity entryId entry) = noteToRssEntry usernamep (Entity entryId entry) =
FeedEntry { feedEntryLink = NoteR usernamep (noteSlug entry) FeedEntry
, feedEntryUpdated = (noteUpdated entry) { feedEntryLink = NoteR usernamep (noteSlug entry)
, feedEntryTitle = (noteTitle entry) , feedEntryUpdated = noteUpdated entry
, feedEntryContent = (toHtml (noteText entry)) , feedEntryTitle = noteTitle entry
, feedEntryEnclosure = Nothing , feedEntryContent = toHtml (noteText entry)
, feedEntryCategories = [] , feedEntryEnclosure = Nothing
} , feedEntryCategories = []
}
getNotesFeedR :: UserNameP -> Handler RepRss getNotesFeedR :: UserNameP -> Handler RepRss
getNotesFeedR unamep@(UserNameP uname) = do getNotesFeedR unamep@(UserNameP uname) = do
@ -173,12 +175,15 @@ getNotesFeedR unamep@(UserNameP uname) = do
updated <- case maximumMay (map feedEntryUpdated entries) of updated <- case maximumMay (map feedEntryUpdated entries) of
Nothing -> liftIO $ getCurrentTime Nothing -> liftIO $ getCurrentTime
Just m -> return m Just m -> return m
rssFeed $ Feed (uname <> " notes") rssFeed $
(NotesFeedR unamep) Feed
(NotesR unamep) { feedTitle = uname <> " notes"
uname , feedLinkSelf = NotesFeedR unamep
descr , feedLinkHome = NotesR unamep
"en" , feedAuthor = uname
updated , feedDescription = descr
Nothing , feedLanguage = "en"
entries , feedUpdated = updated
, feedLogo = Nothing
, feedEntries = entries
}

View file

@ -98,15 +98,16 @@ _updateTagCloudMode mode =
TagCloudModeRelated _ _ -> setTagCloudMode mode TagCloudModeRelated _ _ -> setTagCloudMode mode
TagCloudModeNone -> notFound TagCloudModeNone -> notFound
bookmarkToRssEntry :: (Entity Bookmark,[Text]) -> FeedEntry Text bookmarkToRssEntry :: (Entity Bookmark, [Text]) -> FeedEntry Text
bookmarkToRssEntry ((Entity entryId entry), tags) = bookmarkToRssEntry ((Entity entryId entry), tags) =
FeedEntry { feedEntryLink = (bookmarkHref entry) FeedEntry
, feedEntryUpdated = (bookmarkTime entry) { feedEntryLink = bookmarkHref entry
, feedEntryTitle = (bookmarkDescription entry) , feedEntryUpdated = bookmarkTime entry
, feedEntryContent = (toHtml (bookmarkExtended entry)) , feedEntryTitle = bookmarkDescription entry
, feedEntryCategories = map (EntryCategory Nothing Nothing) tags , feedEntryContent = toHtml (bookmarkExtended entry)
, feedEntryEnclosure = Nothing , feedEntryCategories = map (EntryCategory Nothing Nothing) tags
} , feedEntryEnclosure = Nothing
}
toBookmarkWithTagsList :: [Entity Bookmark] -> [Entity BookmarkTag] -> [(Entity Bookmark, [Text])] toBookmarkWithTagsList :: [Entity Bookmark] -> [Entity BookmarkTag] -> [(Entity Bookmark, [Text])]
toBookmarkWithTagsList bs as = do toBookmarkWithTagsList bs as = do
@ -139,12 +140,15 @@ getUserFeedR unamep@(UserNameP uname) = do
Nothing -> liftIO $ getCurrentTime Nothing -> liftIO $ getCurrentTime
Just m -> return m Just m -> return m
render <- getUrlRender render <- getUrlRender
rssFeedText $ Feed ("espial " <> uname) rssFeedText $
(render (UserFeedR unamep)) Feed
(render (UserR unamep)) { feedTitle = "espial " <> uname
uname , feedLinkSelf = render (UserFeedR unamep)
descr , feedLinkHome = render (UserR unamep)
"en" , feedAuthor = uname
updated , feedDescription = descr
Nothing , feedLanguage = "en"
entries , feedUpdated = updated
, feedLogo = Nothing
, feedEntries = entries
}

View file

@ -326,29 +326,31 @@ fileBookmarkToBookmark user (FileBookmark {..}) = do
slug <- mkBmSlug slug <- mkBmSlug
pure $ pure $
Bookmark Bookmark
user { bookmarkUserId = user
slug , bookmarkSlug = slug
fileBookmarkHref , bookmarkHref = fileBookmarkHref
fileBookmarkDescription , bookmarkDescription = fileBookmarkDescription
fileBookmarkExtended , bookmarkExtended = fileBookmarkExtended
fileBookmarkTime , bookmarkTime = fileBookmarkTime
fileBookmarkShared , bookmarkShared = fileBookmarkShared
fileBookmarkToRead , bookmarkToRead = fileBookmarkToRead
(fromMaybe False fileBookmarkSelected) , bookmarkSelected = (fromMaybe False fileBookmarkSelected)
fileBookmarkArchiveHref , bookmarkArchiveHref = fileBookmarkArchiveHref
}
bookmarkTofileBookmark :: Bookmark -> Text -> FileBookmark bookmarkTofileBookmark :: Bookmark -> Text -> FileBookmark
bookmarkTofileBookmark (Bookmark {..}) tags = bookmarkTofileBookmark (Bookmark {..}) tags =
FileBookmark FileBookmark
bookmarkHref { fileBookmarkHref = bookmarkHref
bookmarkDescription , fileBookmarkDescription = bookmarkDescription
bookmarkExtended , fileBookmarkExtended = bookmarkExtended
bookmarkTime , fileBookmarkTime = bookmarkTime
bookmarkShared , fileBookmarkShared = bookmarkShared
bookmarkToRead , fileBookmarkToRead = bookmarkToRead
(Just bookmarkSelected) , fileBookmarkSelected = Just bookmarkSelected
bookmarkArchiveHref , fileBookmarkArchiveHref = bookmarkArchiveHref
tags , fileBookmarkTags = tags
}
data FFBookmarkNode = FFBookmarkNode data FFBookmarkNode = FFBookmarkNode
{ firefoxBookmarkChildren :: Maybe [FFBookmarkNode] { firefoxBookmarkChildren :: Maybe [FFBookmarkNode]
@ -389,16 +391,17 @@ firefoxBookmarkNodeToBookmark user (FFBookmarkNode {..}) = do
slug <- mkBmSlug slug <- mkBmSlug
pure $ pure $
[ Bookmark [ Bookmark
user { bookmarkUserId = user
slug , bookmarkSlug = slug
(fromMaybe "" firefoxBookmarkUri) , bookmarkHref = (fromMaybe "" firefoxBookmarkUri)
firefoxBookmarkTitle , bookmarkDescription = firefoxBookmarkTitle
"" , bookmarkExtended = ""
(TI.posixSecondsToUTCTime (firefoxBookmarkDateAdded / 1000000)) , bookmarkTime = (TI.posixSecondsToUTCTime (firefoxBookmarkDateAdded / 1000000))
True , bookmarkShared = True
False , bookmarkToRead = False
False , bookmarkSelected = False
Nothing , bookmarkArchiveHref = Nothing
}
] ]
2 -> 2 ->
join <$> join <$>
@ -584,15 +587,16 @@ fileNoteToNote user (FileNote {..} ) = do
slug <- mkNtSlug slug <- mkNtSlug
pure $ pure $
Note Note
user { noteUserId = user
slug , noteSlug = slug
fileNoteLength , noteLength = fileNoteLength
fileNoteTitle , noteTitle = fileNoteTitle
fileNoteText , noteText = fileNoteText
False , noteIsMarkdown = False
False , noteShared = False
fileNoteCreatedAt , noteCreated = fileNoteCreatedAt
fileNoteUpdatedAt , noteUpdated = fileNoteUpdatedAt
}
insertDirFileNotes :: Key User -> FilePath -> DB (Either String Int) insertDirFileNotes :: Key User -> FilePath -> DB (Either String Int)
insertDirFileNotes userId noteDirectory = do insertDirFileNotes userId noteDirectory = do
@ -687,16 +691,17 @@ _toBookmark userId BookmarkForm {..} = do
slug <- maybe mkBmSlug pure _slug slug <- maybe mkBmSlug pure _slug
pure $ pure $
Bookmark Bookmark
userId { bookmarkUserId = userId
slug , bookmarkSlug = slug
_url , bookmarkHref = _url
(fromMaybe "" _title) , bookmarkDescription = (fromMaybe "" _title)
(maybe "" unTextarea _description) , bookmarkExtended = (maybe "" unTextarea _description)
(fromMaybe time (fmap unUTCTimeStr _time)) , bookmarkTime = (fromMaybe time (fmap unUTCTimeStr _time))
(maybe True not _private) , bookmarkShared = (maybe True not _private)
(fromMaybe False _toread) , bookmarkToRead = (fromMaybe False _toread)
(fromMaybe False _selected) , bookmarkSelected = (fromMaybe False _selected)
_archiveUrl , bookmarkArchiveHref = _archiveUrl
}
fetchBookmarkByUrl :: Key User -> Maybe Text -> DB (Maybe (Entity Bookmark, [Entity BookmarkTag])) fetchBookmarkByUrl :: Key User -> Maybe Text -> DB (Maybe (Entity Bookmark, [Entity BookmarkTag]))
fetchBookmarkByUrl userId murl = runMaybeT $ do fetchBookmarkByUrl userId murl = runMaybeT $ do