@@ -83,19 +83,19 @@ func (a *TransactionsApi) TransactionCountHandler(c *core.WebContext) (any, *err
8383 return nil , errs .Or (err , errs .ErrOperationFailed )
8484 }
8585
86- var allTagIds [] int64
87- noTags := transactionCountReq . TagIds == "none"
86+ noTags := transactionCountReq . TagFilter == models . TransactionNoTagFilterValue
87+ var tagFilters [] * models. TransactionTagFilter
8888
8989 if ! noTags {
90- allTagIds , err = a . transactionTags . GetTagIds (transactionCountReq .TagIds )
90+ tagFilters , err = models . ParseTransactionTagFilter (transactionCountReq .TagFilter )
9191
9292 if err != nil {
93- log .Warnf (c , "[transactions.TransactionCountHandler] get transaction tag ids error, because %s" , err .Error ())
93+ log .Warnf (c , "[transactions.TransactionCountHandler] parse transaction filters error, because %s" , err .Error ())
9494 return nil , errs .Or (err , errs .ErrOperationFailed )
9595 }
9696 }
9797
98- totalCount , err := a .transactions .GetTransactionCount (c , uid , transactionCountReq .MaxTime , transactionCountReq .MinTime , transactionCountReq .Type , allCategoryIds , allAccountIds , allTagIds , noTags , transactionCountReq . TagFilterType , transactionCountReq .AmountFilter , transactionCountReq .Keyword )
98+ totalCount , err := a .transactions .GetTransactionCount (c , uid , transactionCountReq .MaxTime , transactionCountReq .MinTime , transactionCountReq .Type , allCategoryIds , allAccountIds , tagFilters , noTags , transactionCountReq .AmountFilter , transactionCountReq .Keyword )
9999
100100 if err != nil {
101101 log .Errorf (c , "[transactions.TransactionCountHandler] failed to get transaction count for user \" uid:%d\" , because %s" , uid , err .Error ())
@@ -151,30 +151,30 @@ func (a *TransactionsApi) TransactionListHandler(c *core.WebContext) (any, *errs
151151 return nil , errs .Or (err , errs .ErrOperationFailed )
152152 }
153153
154- var allTagIds [] int64
155- noTags := transactionListReq . TagIds == "none"
154+ noTags := transactionListReq . TagFilter == models . TransactionNoTagFilterValue
155+ var tagFilters [] * models. TransactionTagFilter
156156
157157 if ! noTags {
158- allTagIds , err = a . transactionTags . GetTagIds (transactionListReq .TagIds )
158+ tagFilters , err = models . ParseTransactionTagFilter (transactionListReq .TagFilter )
159159
160160 if err != nil {
161- log .Warnf (c , "[transactions.TransactionListHandler] get transaction tag ids error, because %s" , err .Error ())
161+ log .Warnf (c , "[transactions.TransactionListHandler] parse transaction tag filters error, because %s" , err .Error ())
162162 return nil , errs .Or (err , errs .ErrOperationFailed )
163163 }
164164 }
165165
166166 var totalCount int64
167167
168168 if transactionListReq .WithCount {
169- totalCount , err = a .transactions .GetTransactionCount (c , uid , transactionListReq .MaxTime , transactionListReq .MinTime , transactionListReq .Type , allCategoryIds , allAccountIds , allTagIds , noTags , transactionListReq . TagFilterType , transactionListReq .AmountFilter , transactionListReq .Keyword )
169+ totalCount , err = a .transactions .GetTransactionCount (c , uid , transactionListReq .MaxTime , transactionListReq .MinTime , transactionListReq .Type , allCategoryIds , allAccountIds , tagFilters , noTags , transactionListReq .AmountFilter , transactionListReq .Keyword )
170170
171171 if err != nil {
172172 log .Errorf (c , "[transactions.TransactionListHandler] failed to get transaction count for user \" uid:%d\" , because %s" , uid , err .Error ())
173173 return nil , errs .Or (err , errs .ErrOperationFailed )
174174 }
175175 }
176176
177- transactions , err := a .transactions .GetTransactionsByMaxTime (c , uid , transactionListReq .MaxTime , transactionListReq .MinTime , transactionListReq .Type , allCategoryIds , allAccountIds , allTagIds , noTags , transactionListReq . TagFilterType , transactionListReq .AmountFilter , transactionListReq .Keyword , transactionListReq .Page , transactionListReq .Count , true , true )
177+ transactions , err := a .transactions .GetTransactionsByMaxTime (c , uid , transactionListReq .MaxTime , transactionListReq .MinTime , transactionListReq .Type , allCategoryIds , allAccountIds , tagFilters , noTags , transactionListReq .AmountFilter , transactionListReq .Keyword , transactionListReq .Page , transactionListReq .Count , true , true )
178178
179179 if err != nil {
180180 log .Errorf (c , "[transactions.TransactionListHandler] failed to get transactions earlier than \" %d\" for user \" uid:%d\" , because %s" , transactionListReq .MaxTime , uid , err .Error ())
@@ -254,19 +254,19 @@ func (a *TransactionsApi) TransactionMonthListHandler(c *core.WebContext) (any,
254254 return nil , errs .Or (err , errs .ErrOperationFailed )
255255 }
256256
257- var allTagIds [] int64
258- noTags := transactionListReq . TagIds == "none"
257+ noTags := transactionListReq . TagFilter == models . TransactionNoTagFilterValue
258+ var tagFilters [] * models. TransactionTagFilter
259259
260260 if ! noTags {
261- allTagIds , err = a . transactionTags . GetTagIds (transactionListReq .TagIds )
261+ tagFilters , err = models . ParseTransactionTagFilter (transactionListReq .TagFilter )
262262
263263 if err != nil {
264- log .Warnf (c , "[transactions.TransactionMonthListHandler] get transaction tag ids error, because %s" , err .Error ())
264+ log .Warnf (c , "[transactions.TransactionMonthListHandler] parse transaction tag filters error, because %s" , err .Error ())
265265 return nil , errs .Or (err , errs .ErrOperationFailed )
266266 }
267267 }
268268
269- transactions , err := a .transactions .GetTransactionsInMonthByPage (c , uid , transactionListReq .Year , transactionListReq .Month , transactionListReq .Type , allCategoryIds , allAccountIds , allTagIds , noTags , transactionListReq . TagFilterType , transactionListReq .AmountFilter , transactionListReq .Keyword )
269+ transactions , err := a .transactions .GetTransactionsInMonthByPage (c , uid , transactionListReq .Year , transactionListReq .Month , transactionListReq .Type , allCategoryIds , allAccountIds , tagFilters , noTags , transactionListReq .AmountFilter , transactionListReq .Keyword )
270270
271271 if err != nil {
272272 log .Errorf (c , "[transactions.TransactionMonthListHandler] failed to get transactions in month \" %d-%d\" for user \" uid:%d\" , because %s" , transactionListReq .Year , transactionListReq .Month , uid , err .Error ())
@@ -413,20 +413,20 @@ func (a *TransactionsApi) TransactionStatisticsHandler(c *core.WebContext) (any,
413413 return nil , errs .ErrClientTimezoneOffsetInvalid
414414 }
415415
416- var allTagIds [] int64
417- noTags := statisticReq . TagIds == "none"
416+ noTags := statisticReq . TagFilter == models . TransactionNoTagFilterValue
417+ var tagFilters [] * models. TransactionTagFilter
418418
419419 if ! noTags {
420- allTagIds , err = a . transactionTags . GetTagIds (statisticReq .TagIds )
420+ tagFilters , err = models . ParseTransactionTagFilter (statisticReq .TagFilter )
421421
422422 if err != nil {
423- log .Warnf (c , "[transactions.TransactionStatisticsHandler] get transaction tag ids error, because %s" , err .Error ())
423+ log .Warnf (c , "[transactions.TransactionStatisticsHandler] parse transaction tag filters error, because %s" , err .Error ())
424424 return nil , errs .Or (err , errs .ErrOperationFailed )
425425 }
426426 }
427427
428428 uid := c .GetCurrentUid ()
429- totalAmounts , err := a .transactions .GetAccountsAndCategoriesTotalInflowAndOutflow (c , uid , statisticReq .StartTime , statisticReq .EndTime , allTagIds , noTags , statisticReq . TagFilterType , statisticReq .Keyword , utcOffset , statisticReq .UseTransactionTimezone )
429+ totalAmounts , err := a .transactions .GetAccountsAndCategoriesTotalInflowAndOutflow (c , uid , statisticReq .StartTime , statisticReq .EndTime , tagFilters , noTags , statisticReq .Keyword , utcOffset , statisticReq .UseTransactionTimezone )
430430
431431 if err != nil {
432432 log .Errorf (c , "[transactions.TransactionStatisticsHandler] failed to get accounts and categories total income and expense for user \" uid:%d\" , because %s" , uid , err .Error ())
@@ -481,20 +481,20 @@ func (a *TransactionsApi) TransactionStatisticsTrendsHandler(c *core.WebContext)
481481 return nil , errs .Or (err , errs .ErrOperationFailed )
482482 }
483483
484- var allTagIds [] int64
485- noTags := statisticTrendsReq . TagIds == "none"
484+ noTags := statisticTrendsReq . TagFilter == models . TransactionNoTagFilterValue
485+ var tagFilters [] * models. TransactionTagFilter
486486
487487 if ! noTags {
488- allTagIds , err = a . transactionTags . GetTagIds (statisticTrendsReq .TagIds )
488+ tagFilters , err = models . ParseTransactionTagFilter (statisticTrendsReq .TagFilter )
489489
490490 if err != nil {
491- log .Warnf (c , "[transactions.TransactionStatisticsTrendsHandler] get transaction tag ids error, because %s" , err .Error ())
491+ log .Warnf (c , "[transactions.TransactionStatisticsTrendsHandler] parse transaction tag filters error, because %s" , err .Error ())
492492 return nil , errs .Or (err , errs .ErrOperationFailed )
493493 }
494494 }
495495
496496 uid := c .GetCurrentUid ()
497- allMonthlyTotalAmounts , err := a .transactions .GetAccountsAndCategoriesMonthlyInflowAndOutflow (c , uid , startYear , startMonth , endYear , endMonth , allTagIds , noTags , statisticTrendsReq . TagFilterType , statisticTrendsReq .Keyword , utcOffset , statisticTrendsReq .UseTransactionTimezone )
497+ allMonthlyTotalAmounts , err := a .transactions .GetAccountsAndCategoriesMonthlyInflowAndOutflow (c , uid , startYear , startMonth , endYear , endMonth , tagFilters , noTags , statisticTrendsReq .Keyword , utcOffset , statisticTrendsReq .UseTransactionTimezone )
498498
499499 if err != nil {
500500 log .Errorf (c , "[transactions.TransactionStatisticsTrendsHandler] failed to get accounts and categories total income and expense for user \" uid:%d\" , because %s" , uid , err .Error ())
0 commit comments