use named record constructors
This commit is contained in:
parent
7605ddaaa7
commit
4a574287b9
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
101
src/Model.hs
101
src/Model.hs
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue