api: cleanups, simplify ToJSON instances
This commit is contained in:
		
							parent
							
								
									9a49b813c1
								
							
						
					
					
						commit
						3d0d55ecf8
					
				| @ -166,19 +166,59 @@ hledgerApiApp staticdir j = Servant.serve api server | |||||||
|             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 Status where toJSON = genericToJSON defaultOptions -- avoiding https://github.com/bos/aeson/issues/290 | -- avoiding https://github.com/bos/aeson/issues/290 - no longer needed ? | ||||||
| instance ToJSON GenericSourcePos where toJSON = genericToJSON defaultOptions | --instance ToJSON Status where toJSON = genericToJSON defaultOptions -- avoiding https://github.com/bos/aeson/issues/290 | ||||||
| instance ToJSON Decimal where | --instance ToJSON GenericSourcePos where toJSON = genericToJSON defaultOptions | ||||||
|   toJSON = toJSON . show | --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 | ||||||
| instance ToJSON DigitGroupStyle where toJSON = genericToJSON defaultOptions | --instance ToJSON DigitGroupStyle where toJSON = genericToJSON defaultOptions | ||||||
| instance ToJSON MixedAmount where toJSON = genericToJSON defaultOptions | --instance ToJSON MixedAmount where toJSON = genericToJSON defaultOptions | ||||||
| instance ToJSON BalanceAssertion where toJSON = genericToJSON defaultOptions | --instance ToJSON BalanceAssertion 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 PostingType where toJSON = genericToJSON defaultOptions | --instance ToJSON PostingType where toJSON = genericToJSON defaultOptions | ||||||
|  | --instance ToJSON Posting where | ||||||
|  | --  toJSON Posting{..} = | ||||||
|  | --    object | ||||||
|  | --    ["pdate"             .= toJSON pdate | ||||||
|  | --    ,"pdate2"            .= toJSON pdate2 | ||||||
|  | --    ,"pstatus"           .= toJSON pstatus | ||||||
|  | --    ,"paccount"          .= toJSON paccount | ||||||
|  | --    ,"pamount"           .= toJSON pamount | ||||||
|  | --    ,"pcomment"          .= toJSON pcomment | ||||||
|  | --    ,"ptype"             .= toJSON ptype | ||||||
|  | --    ,"ptags"             .= toJSON ptags | ||||||
|  | --    ,"pbalanceassertion" .= toJSON pbalanceassertion | ||||||
|  | --    ,"ptransactionidx"   .= toJSON (maybe "" (show.tindex) ptransaction) | ||||||
|  | --    ] | ||||||
|  | --instance ToJSON Transaction where toJSON = genericToJSON defaultOptions | ||||||
|  | --instance ToJSON Account where | ||||||
|  | --  toJSON a = | ||||||
|  | --    object | ||||||
|  | --    ["aname"        .= toJSON (aname a) | ||||||
|  | --    ,"aebalance"    .= toJSON (aebalance a) | ||||||
|  | --    ,"aibalance"    .= toJSON (aibalance a) | ||||||
|  | --    ,"anumpostings" .= toJSON (anumpostings a) | ||||||
|  | --    ,"aboring"      .= toJSON (aboring a) | ||||||
|  | --    ,"aparentname"  .= toJSON (maybe "" aname $ aparent a) | ||||||
|  | --    ,"asubs"        .= toJSON (map toJSON $ asubs a) | ||||||
|  | --    ] | ||||||
|  | 
 | ||||||
|  | -- Convert things to JSON for serving to clients | ||||||
|  | instance ToJSON Status | ||||||
|  | instance ToJSON GenericSourcePos | ||||||
|  | instance ToJSON Decimal where toJSON = toJSON . show | ||||||
|  | instance ToJSON Amount | ||||||
|  | instance ToJSON AmountStyle | ||||||
|  | instance ToJSON Side | ||||||
|  | instance ToJSON DigitGroupStyle | ||||||
|  | instance ToJSON MixedAmount | ||||||
|  | instance ToJSON BalanceAssertion | ||||||
|  | instance ToJSON Price | ||||||
|  | instance ToJSON MarketPrice | ||||||
|  | instance ToJSON PostingType | ||||||
| instance ToJSON Posting where | instance ToJSON Posting where | ||||||
|   toJSON Posting{..} = |   toJSON Posting{..} = | ||||||
|     object |     object | ||||||
| @ -193,7 +233,7 @@ instance ToJSON Posting where | |||||||
|     ,"pbalanceassertion" .= toJSON pbalanceassertion |     ,"pbalanceassertion" .= toJSON pbalanceassertion | ||||||
|     ,"ptransactionidx"   .= toJSON (maybe "" (show.tindex) ptransaction) |     ,"ptransactionidx"   .= toJSON (maybe "" (show.tindex) ptransaction) | ||||||
|     ] |     ] | ||||||
| instance ToJSON Transaction where toJSON = genericToJSON defaultOptions | instance ToJSON Transaction | ||||||
| instance ToJSON Account where | instance ToJSON Account where | ||||||
|   toJSON a = |   toJSON a = | ||||||
|     object |     object | ||||||
| @ -205,6 +245,8 @@ instance ToJSON Account where | |||||||
|     ,"aparentname"  .= toJSON (maybe "" aname $ aparent a) |     ,"aparentname"  .= toJSON (maybe "" aname $ aparent a) | ||||||
|     ,"asubs"        .= toJSON (map toJSON $ asubs a) |     ,"asubs"        .= toJSON (map toJSON $ asubs a) | ||||||
|     ] |     ] | ||||||
|  | 
 | ||||||
|  | -- convert things to Schema for swagger API description | ||||||
| instance ToSchema Status | instance ToSchema Status | ||||||
| instance ToSchema GenericSourcePos | instance ToSchema GenericSourcePos | ||||||
| instance ToSchema Decimal | instance ToSchema Decimal | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user