api: cleanup
This commit is contained in:
parent
ab1d47cfe2
commit
cabcd80ad5
@ -82,7 +82,7 @@ hledgerApiApp j = Servant.serve hledgerApi hledgerApiServer
|
|||||||
|
|
||||||
-- add Reader to the server monad so handlers can see the journal
|
-- add Reader to the server monad so handlers can see the journal
|
||||||
hledgerApiServer :: Servant.Server HledgerApi
|
hledgerApiServer :: Servant.Server HledgerApi
|
||||||
hledgerApiServer = Servant.enter readerToEither hledgerServerT
|
hledgerApiServer = Servant.enter readerToEither hledgerAPIServer
|
||||||
where
|
where
|
||||||
readerToEither :: Reader Journal :~> EitherT ServantErr IO
|
readerToEither :: Reader Journal :~> EitherT ServantErr IO
|
||||||
readerToEither = Nat $ \r -> return (runReader r j)
|
readerToEither = Nat $ \r -> return (runReader r j)
|
||||||
@ -94,11 +94,10 @@ type HledgerApi =
|
|||||||
:<|> "commodities" :> Get '[JSON] [Commodity]
|
:<|> "commodities" :> Get '[JSON] [Commodity]
|
||||||
:<|> "accounts" :> Get '[JSON] [Account]
|
:<|> "accounts" :> Get '[JSON] [Account]
|
||||||
:<|> "reports" :>
|
:<|> "reports" :>
|
||||||
-- "accounttransactions" :> QueryParam "acct" AccountName :> Get '[JSON] AccountTransactionsReport
|
|
||||||
"accounttransactions" :> Capture "acct" AccountName :> Get '[JSON] AccountTransactionsReport
|
"accounttransactions" :> Capture "acct" AccountName :> Get '[JSON] AccountTransactionsReport
|
||||||
|
|
||||||
hledgerServerT :: ServerT HledgerApi (Reader Journal)
|
hledgerAPIServer :: ServerT HledgerApi (Reader Journal)
|
||||||
hledgerServerT =
|
hledgerAPIServer =
|
||||||
accountnamesH
|
accountnamesH
|
||||||
:<|> transactionsH
|
:<|> transactionsH
|
||||||
:<|> pricesH
|
:<|> pricesH
|
||||||
@ -123,8 +122,12 @@ hledgerServerT =
|
|||||||
thisacctq = Acct $ accountNameToAccountRegex a -- includes subs
|
thisacctq = Acct $ accountNameToAccountRegex a -- includes subs
|
||||||
return $ accountTransactionsReport ropts j q thisacctq
|
return $ accountTransactionsReport ropts j q thisacctq
|
||||||
|
|
||||||
instance ToJSON ClearedStatus where toJSON = genericToJSON defaultOptions -- avoid https://github.com/bos/aeson/issues/290
|
-- brief toJSON definitions included to avoid https://github.com/bos/aeson/issues/290
|
||||||
|
-- use toEncoding = genericToEncoding defaultOptions instead ?
|
||||||
|
instance ToJSON ClearedStatus where toJSON = genericToJSON defaultOptions
|
||||||
instance ToJSON GenericSourcePos where toJSON = genericToJSON defaultOptions
|
instance ToJSON GenericSourcePos where toJSON = genericToJSON defaultOptions
|
||||||
|
instance ToJSON Decimal where
|
||||||
|
toJSON = toJSON . show
|
||||||
instance ToJSON Amount where toJSON = genericToJSON defaultOptions
|
instance ToJSON Amount where toJSON = genericToJSON defaultOptions
|
||||||
instance ToJSON AmountStyle where toJSON = genericToJSON defaultOptions
|
instance ToJSON AmountStyle where toJSON = genericToJSON defaultOptions
|
||||||
instance ToJSON Side where toJSON = genericToJSON defaultOptions
|
instance ToJSON Side where toJSON = genericToJSON defaultOptions
|
||||||
@ -132,8 +135,8 @@ instance ToJSON DigitGroupStyle where toJSON = genericToJSON defaultOptions
|
|||||||
instance ToJSON MixedAmount where toJSON = genericToJSON defaultOptions
|
instance ToJSON MixedAmount where toJSON = genericToJSON defaultOptions
|
||||||
instance ToJSON Price where toJSON = genericToJSON defaultOptions
|
instance ToJSON Price where toJSON = genericToJSON defaultOptions
|
||||||
instance ToJSON MarketPrice where toJSON = genericToJSON defaultOptions
|
instance ToJSON MarketPrice where toJSON = genericToJSON defaultOptions
|
||||||
instance ToJSON Posting
|
instance ToJSON PostingType where toJSON = genericToJSON defaultOptions
|
||||||
where
|
instance ToJSON Posting where
|
||||||
toJSON Posting{..} =
|
toJSON Posting{..} =
|
||||||
object
|
object
|
||||||
["pdate" .= toJSON pdate
|
["pdate" .= toJSON pdate
|
||||||
@ -147,16 +150,8 @@ instance ToJSON Posting
|
|||||||
,"pbalanceassertion" .= toJSON pbalanceassertion
|
,"pbalanceassertion" .= toJSON pbalanceassertion
|
||||||
,"ptransactionidx" .= toJSON (maybe "" (show.tindex) ptransaction)
|
,"ptransactionidx" .= toJSON (maybe "" (show.tindex) ptransaction)
|
||||||
]
|
]
|
||||||
instance ToJSON PostingType where toJSON = genericToJSON defaultOptions
|
|
||||||
instance ToJSON Transaction where toJSON = genericToJSON defaultOptions
|
instance ToJSON Transaction where toJSON = genericToJSON defaultOptions
|
||||||
instance ToJSON Decimal
|
instance ToJSON Account where
|
||||||
where
|
|
||||||
-- toJSON (Decimal decimalPlaces decimalMantissa) =
|
|
||||||
-- object ["places" .= decimalPlaces, "mantissa" .= decimalMantissa]
|
|
||||||
-- toEncoding = genericToEncoding defaultOptions
|
|
||||||
toJSON d = toJSON $ show d
|
|
||||||
instance ToJSON Account
|
|
||||||
where
|
|
||||||
toJSON a =
|
toJSON a =
|
||||||
object
|
object
|
||||||
["aname" .= toJSON (aname a)
|
["aname" .= toJSON (aname a)
|
||||||
@ -167,6 +162,4 @@ instance ToJSON Account
|
|||||||
,"aparentname" .= toJSON (maybe "" aname $ aparent a)
|
,"aparentname" .= toJSON (maybe "" aname $ aparent a)
|
||||||
,"asubs" .= toJSON (map toJSON $ asubs a)
|
,"asubs" .= toJSON (map toJSON $ asubs a)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
instance ToJSON AccountTransactionsReport where toJSON = genericToJSON defaultOptions
|
instance ToJSON AccountTransactionsReport where toJSON = genericToJSON defaultOptions
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user