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

View file

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

View file

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