mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-22 02:34:26 +08:00
code refactor
This commit is contained in:
@@ -20,8 +20,6 @@ const pageCountForDataExport = 1000
|
|||||||
// DataManagementsApi represents data management api
|
// DataManagementsApi represents data management api
|
||||||
type DataManagementsApi struct {
|
type DataManagementsApi struct {
|
||||||
ApiUsingConfig
|
ApiUsingConfig
|
||||||
ezBookKeepingCsvConverter converters.TransactionDataConverter
|
|
||||||
ezBookKeepingTsvConverter converters.TransactionDataConverter
|
|
||||||
tokens *services.TokenService
|
tokens *services.TokenService
|
||||||
users *services.UserService
|
users *services.UserService
|
||||||
accounts *services.AccountService
|
accounts *services.AccountService
|
||||||
@@ -38,8 +36,6 @@ var (
|
|||||||
ApiUsingConfig: ApiUsingConfig{
|
ApiUsingConfig: ApiUsingConfig{
|
||||||
container: settings.Container,
|
container: settings.Container,
|
||||||
},
|
},
|
||||||
ezBookKeepingCsvConverter: converters.EzBookKeepingTransactionDataCSVFileConverter,
|
|
||||||
ezBookKeepingTsvConverter: converters.EzBookKeepingTransactionDataTSVFileConverter,
|
|
||||||
tokens: services.Tokens,
|
tokens: services.Tokens,
|
||||||
users: services.Users,
|
users: services.Users,
|
||||||
accounts: services.Accounts,
|
accounts: services.Accounts,
|
||||||
@@ -247,12 +243,10 @@ func (a *DataManagementsApi) getExportedFileContent(c *core.WebContext, fileType
|
|||||||
return nil, "", errs.ErrOperationFailed
|
return nil, "", errs.ErrOperationFailed
|
||||||
}
|
}
|
||||||
|
|
||||||
var dataExporter converters.TransactionDataExporter
|
dataExporter := converters.GetTransactionDataExporter(fileType)
|
||||||
|
|
||||||
if fileType == "tsv" {
|
if dataExporter == nil {
|
||||||
dataExporter = a.ezBookKeepingTsvConverter
|
return nil, "", errs.ErrNotImplemented
|
||||||
} else {
|
|
||||||
dataExporter = a.ezBookKeepingCsvConverter
|
|
||||||
}
|
}
|
||||||
|
|
||||||
result, err := dataExporter.ToExportedContent(c, uid, allTransactions, accountMap, categoryMap, tagMap, tagIndexes)
|
result, err := dataExporter.ToExportedContent(c, uid, allTransactions, accountMap, categoryMap, tagMap, tagIndexes)
|
||||||
|
|||||||
+3
-11
@@ -25,8 +25,6 @@ const maximumPicturesCountOfTransaction = 10
|
|||||||
type TransactionsApi struct {
|
type TransactionsApi struct {
|
||||||
ApiUsingConfig
|
ApiUsingConfig
|
||||||
ApiUsingDuplicateChecker
|
ApiUsingDuplicateChecker
|
||||||
ezBookKeepingCsvConverter converters.TransactionDataConverter
|
|
||||||
ezBookKeepingTsvConverter converters.TransactionDataConverter
|
|
||||||
transactions *services.TransactionService
|
transactions *services.TransactionService
|
||||||
transactionCategories *services.TransactionCategoryService
|
transactionCategories *services.TransactionCategoryService
|
||||||
transactionTags *services.TransactionTagService
|
transactionTags *services.TransactionTagService
|
||||||
@@ -44,8 +42,6 @@ var (
|
|||||||
ApiUsingDuplicateChecker: ApiUsingDuplicateChecker{
|
ApiUsingDuplicateChecker: ApiUsingDuplicateChecker{
|
||||||
container: duplicatechecker.Container,
|
container: duplicatechecker.Container,
|
||||||
},
|
},
|
||||||
ezBookKeepingCsvConverter: converters.EzBookKeepingTransactionDataCSVFileConverter,
|
|
||||||
ezBookKeepingTsvConverter: converters.EzBookKeepingTransactionDataTSVFileConverter,
|
|
||||||
transactions: services.Transactions,
|
transactions: services.Transactions,
|
||||||
transactionCategories: services.TransactionCategories,
|
transactionCategories: services.TransactionCategories,
|
||||||
transactionTags: services.TransactionTags,
|
transactionTags: services.TransactionTags,
|
||||||
@@ -1034,14 +1030,10 @@ func (a *TransactionsApi) TransactionParseImportFileHandler(c *core.WebContext)
|
|||||||
}
|
}
|
||||||
|
|
||||||
fileType := fileTypes[0]
|
fileType := fileTypes[0]
|
||||||
var dataImporter converters.TransactionDataImporter
|
dataImporter, err := converters.GetTransactionDataImporter(fileType)
|
||||||
|
|
||||||
if fileType == "ezbookkeeping_csv" {
|
if err != nil {
|
||||||
dataImporter = a.ezBookKeepingCsvConverter
|
return nil, errs.Or(err, errs.ErrImportFileTypeNotSupported)
|
||||||
} else if fileType == "ezbookkeeping_tsv" {
|
|
||||||
dataImporter = a.ezBookKeepingTsvConverter
|
|
||||||
} else {
|
|
||||||
return nil, errs.ErrImportFileTypeNotSupported
|
|
||||||
}
|
}
|
||||||
|
|
||||||
importFiles := form.File["file"]
|
importFiles := form.File["file"]
|
||||||
|
|||||||
+6
-16
@@ -21,8 +21,6 @@ const pageCountForDataExport = 1000
|
|||||||
// UserDataCli represents user data cli
|
// UserDataCli represents user data cli
|
||||||
type UserDataCli struct {
|
type UserDataCli struct {
|
||||||
CliUsingConfig
|
CliUsingConfig
|
||||||
ezBookKeepingCsvConverter converters.TransactionDataConverter
|
|
||||||
ezBookKeepingTsvConverter converters.TransactionDataConverter
|
|
||||||
accounts *services.AccountService
|
accounts *services.AccountService
|
||||||
transactions *services.TransactionService
|
transactions *services.TransactionService
|
||||||
categories *services.TransactionCategoryService
|
categories *services.TransactionCategoryService
|
||||||
@@ -39,8 +37,6 @@ var (
|
|||||||
CliUsingConfig: CliUsingConfig{
|
CliUsingConfig: CliUsingConfig{
|
||||||
container: settings.Container,
|
container: settings.Container,
|
||||||
},
|
},
|
||||||
ezBookKeepingCsvConverter: converters.EzBookKeepingTransactionDataCSVFileConverter,
|
|
||||||
ezBookKeepingTsvConverter: converters.EzBookKeepingTransactionDataTSVFileConverter,
|
|
||||||
accounts: services.Accounts,
|
accounts: services.Accounts,
|
||||||
transactions: services.Transactions,
|
transactions: services.Transactions,
|
||||||
categories: services.TransactionCategories,
|
categories: services.TransactionCategories,
|
||||||
@@ -646,12 +642,10 @@ func (l *UserDataCli) ExportTransaction(c *core.CliContext, username string, fil
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var dataExporter converters.TransactionDataExporter
|
dataExporter := converters.GetTransactionDataExporter(fileType)
|
||||||
|
|
||||||
if fileType == "tsv" {
|
if dataExporter == nil {
|
||||||
dataExporter = l.ezBookKeepingTsvConverter
|
return nil, errs.ErrNotImplemented
|
||||||
} else {
|
|
||||||
dataExporter = l.ezBookKeepingCsvConverter
|
|
||||||
}
|
}
|
||||||
|
|
||||||
result, err := dataExporter.ToExportedContent(c, uid, allTransactions, accountMap, categoryMap, tagMap, tagIndexesMap)
|
result, err := dataExporter.ToExportedContent(c, uid, allTransactions, accountMap, categoryMap, tagMap, tagIndexesMap)
|
||||||
@@ -670,14 +664,10 @@ func (l *UserDataCli) ImportTransaction(c *core.CliContext, username string, fil
|
|||||||
return errs.ErrUsernameIsEmpty
|
return errs.ErrUsernameIsEmpty
|
||||||
}
|
}
|
||||||
|
|
||||||
var dataImporter converters.TransactionDataImporter
|
dataImporter, err := converters.GetTransactionDataImporter(fileType)
|
||||||
|
|
||||||
if fileType == "ezbookkeeping_csv" {
|
if err != nil {
|
||||||
dataImporter = l.ezBookKeepingCsvConverter
|
return err
|
||||||
} else if fileType == "ezbookkeeping_tsv" {
|
|
||||||
dataImporter = l.ezBookKeepingTsvConverter
|
|
||||||
} else {
|
|
||||||
return errs.ErrImportFileTypeNotSupported
|
|
||||||
}
|
}
|
||||||
|
|
||||||
user, err := l.GetUserByUsername(c, username)
|
user, err := l.GetUserByUsername(c, username)
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package converters
|
||||||
|
|
||||||
|
import "github.com/mayswind/ezbookkeeping/pkg/errs"
|
||||||
|
|
||||||
|
// GetTransactionDataExporter returns the transaction data exporter according to the file type
|
||||||
|
func GetTransactionDataExporter(fileType string) TransactionDataExporter {
|
||||||
|
if fileType == "csv" {
|
||||||
|
return EzBookKeepingTransactionDataCSVFileConverter
|
||||||
|
} else if fileType == "tsv" {
|
||||||
|
return EzBookKeepingTransactionDataTSVFileConverter
|
||||||
|
} else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetTransactionDataImporter returns the transaction data importer according to the file type
|
||||||
|
func GetTransactionDataImporter(fileType string) (TransactionDataImporter, error) {
|
||||||
|
if fileType == "ezbookkeeping_csv" {
|
||||||
|
return EzBookKeepingTransactionDataCSVFileConverter, nil
|
||||||
|
} else if fileType == "ezbookkeeping_tsv" {
|
||||||
|
return EzBookKeepingTransactionDataTSVFileConverter, nil
|
||||||
|
} else {
|
||||||
|
return nil, errs.ErrImportFileTypeNotSupported
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user