Compare commits
2 Commits
83e39cbe6c
...
f55a982f57
Author | SHA1 | Date | |
---|---|---|---|
f55a982f57 | |||
3f1b2d3588 |
@ -102,22 +102,24 @@ instance VersionedCatalog AppM 1 where
|
|||||||
getChannels = getChannelsV1
|
getChannels = getChannelsV1
|
||||||
getBooks = getBooksV1
|
getBooks = getBooksV1
|
||||||
|
|
||||||
|
relUrl :: Text -> Rel
|
||||||
|
relUrl x = Rel ("/api/current/" <> x)
|
||||||
|
|
||||||
getBooksV1 :: Channel.ChannelID -> SafeUser -> AppM (Catalog 1)
|
getBooksV1 :: Channel.ChannelID -> SafeUser -> AppM (Catalog 1)
|
||||||
getBooksV1 identifier SafeUser{} = do
|
getBooksV1 identifier SafeUser{} = do
|
||||||
updated <- liftIO getCurrentTime
|
updated <- liftIO getCurrentTime
|
||||||
let self = Rel ("/api/current" <> selfUrl)
|
let self = relUrl selfUrl
|
||||||
start = Rel ("/api/current" <> startUrl)
|
start = relUrl startUrl
|
||||||
selfUrl = pack . uriPath . linkURI $ safeLink (Proxy @(BaseAPI 1)) (Proxy @(ChannelCatalog 1)) identifier
|
selfUrl = pack . uriPath . linkURI $ safeLink (Proxy @(BaseAPI 1)) (Proxy @(ChannelCatalog 1)) identifier
|
||||||
startUrl = pack . uriPath . linkURI $ safeLink (Proxy @(BaseAPI 1)) (Proxy @(RootCatalog 1))
|
startUrl = pack . uriPath . linkURI $ safeLink (Proxy @(BaseAPI 1)) (Proxy @(RootCatalog 1))
|
||||||
entries = mempty
|
entries = mempty
|
||||||
pagination = Pagination Nothing Nothing
|
pagination = Pagination Nothing Nothing
|
||||||
pure CatalogV1{..}
|
pure CatalogV1{..}
|
||||||
|
|
||||||
|
|
||||||
getChannelsV1 :: SafeUser -> AppM (Catalog 1)
|
getChannelsV1 :: SafeUser -> AppM (Catalog 1)
|
||||||
getChannelsV1 SafeUser{username} = do
|
getChannelsV1 SafeUser{username} = do
|
||||||
updated <- liftIO getCurrentTime
|
updated <- liftIO getCurrentTime
|
||||||
let self = Rel ("/api/current/" <> selfUrl)
|
let self = relUrl selfUrl
|
||||||
-- I'm not sure if this safe link approach is really useable with this
|
-- I'm not sure if this safe link approach is really useable with this
|
||||||
-- api hierarchy since I can't access the topmost api from here. Also
|
-- api hierarchy since I can't access the topmost api from here. Also
|
||||||
-- authentication would bring a little bit of extra effort as well
|
-- authentication would bring a little bit of extra effort as well
|
||||||
@ -130,7 +132,7 @@ getChannelsV1 SafeUser{username} = do
|
|||||||
fromChannel :: UTCTime -> Channel.Channel -> Entry 1
|
fromChannel :: UTCTime -> Channel.Channel -> Entry 1
|
||||||
fromChannel updated Channel.Channel{..} =
|
fromChannel updated Channel.Channel{..} =
|
||||||
let url = pack . uriPath . linkURI $ safeLink (Proxy @(BaseAPI 1)) (Proxy @(ChannelCatalog 1)) identifier
|
let url = pack . uriPath . linkURI $ safeLink (Proxy @(BaseAPI 1)) (Proxy @(ChannelCatalog 1)) identifier
|
||||||
self = Rel ("/api/current/" <> url)
|
self = relUrl url
|
||||||
in EntryV1 channel channel updated channel (Left $ SubSection self)
|
in EntryV1 channel channel updated channel (Left $ SubSection self)
|
||||||
|
|
||||||
type VersionedAPI (v :: Nat) = Auth '[SA.BasicAuth, SA.JWT] SafeUser :> BaseAPI v
|
type VersionedAPI (v :: Nat) = Auth '[SA.BasicAuth, SA.JWT] SafeUser :> BaseAPI v
|
||||||
|
Loading…
Reference in New Issue
Block a user