code refactor
This commit is contained in:
+19
-25
@@ -20,16 +20,14 @@ const pageCountForDataExport = 1000
|
||||
// DataManagementsApi represents data management api
|
||||
type DataManagementsApi struct {
|
||||
ApiUsingConfig
|
||||
ezBookKeepingCsvConverter converters.TransactionDataConverter
|
||||
ezBookKeepingTsvConverter converters.TransactionDataConverter
|
||||
tokens *services.TokenService
|
||||
users *services.UserService
|
||||
accounts *services.AccountService
|
||||
transactions *services.TransactionService
|
||||
categories *services.TransactionCategoryService
|
||||
tags *services.TransactionTagService
|
||||
pictures *services.TransactionPictureService
|
||||
templates *services.TransactionTemplateService
|
||||
tokens *services.TokenService
|
||||
users *services.UserService
|
||||
accounts *services.AccountService
|
||||
transactions *services.TransactionService
|
||||
categories *services.TransactionCategoryService
|
||||
tags *services.TransactionTagService
|
||||
pictures *services.TransactionPictureService
|
||||
templates *services.TransactionTemplateService
|
||||
}
|
||||
|
||||
// Initialize a data management api singleton instance
|
||||
@@ -38,16 +36,14 @@ var (
|
||||
ApiUsingConfig: ApiUsingConfig{
|
||||
container: settings.Container,
|
||||
},
|
||||
ezBookKeepingCsvConverter: converters.EzBookKeepingTransactionDataCSVFileConverter,
|
||||
ezBookKeepingTsvConverter: converters.EzBookKeepingTransactionDataTSVFileConverter,
|
||||
tokens: services.Tokens,
|
||||
users: services.Users,
|
||||
accounts: services.Accounts,
|
||||
transactions: services.Transactions,
|
||||
categories: services.TransactionCategories,
|
||||
tags: services.TransactionTags,
|
||||
pictures: services.TransactionPictures,
|
||||
templates: services.TransactionTemplates,
|
||||
tokens: services.Tokens,
|
||||
users: services.Users,
|
||||
accounts: services.Accounts,
|
||||
transactions: services.Transactions,
|
||||
categories: services.TransactionCategories,
|
||||
tags: services.TransactionTags,
|
||||
pictures: services.TransactionPictures,
|
||||
templates: services.TransactionTemplates,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -247,12 +243,10 @@ func (a *DataManagementsApi) getExportedFileContent(c *core.WebContext, fileType
|
||||
return nil, "", errs.ErrOperationFailed
|
||||
}
|
||||
|
||||
var dataExporter converters.TransactionDataExporter
|
||||
dataExporter := converters.GetTransactionDataExporter(fileType)
|
||||
|
||||
if fileType == "tsv" {
|
||||
dataExporter = a.ezBookKeepingTsvConverter
|
||||
} else {
|
||||
dataExporter = a.ezBookKeepingCsvConverter
|
||||
if dataExporter == nil {
|
||||
return nil, "", errs.ErrNotImplemented
|
||||
}
|
||||
|
||||
result, err := dataExporter.ToExportedContent(c, uid, allTransactions, accountMap, categoryMap, tagMap, tagIndexes)
|
||||
|
||||
+15
-23
@@ -25,14 +25,12 @@ const maximumPicturesCountOfTransaction = 10
|
||||
type TransactionsApi struct {
|
||||
ApiUsingConfig
|
||||
ApiUsingDuplicateChecker
|
||||
ezBookKeepingCsvConverter converters.TransactionDataConverter
|
||||
ezBookKeepingTsvConverter converters.TransactionDataConverter
|
||||
transactions *services.TransactionService
|
||||
transactionCategories *services.TransactionCategoryService
|
||||
transactionTags *services.TransactionTagService
|
||||
transactionPictures *services.TransactionPictureService
|
||||
accounts *services.AccountService
|
||||
users *services.UserService
|
||||
transactions *services.TransactionService
|
||||
transactionCategories *services.TransactionCategoryService
|
||||
transactionTags *services.TransactionTagService
|
||||
transactionPictures *services.TransactionPictureService
|
||||
accounts *services.AccountService
|
||||
users *services.UserService
|
||||
}
|
||||
|
||||
// Initialize a transaction api singleton instance
|
||||
@@ -44,14 +42,12 @@ var (
|
||||
ApiUsingDuplicateChecker: ApiUsingDuplicateChecker{
|
||||
container: duplicatechecker.Container,
|
||||
},
|
||||
ezBookKeepingCsvConverter: converters.EzBookKeepingTransactionDataCSVFileConverter,
|
||||
ezBookKeepingTsvConverter: converters.EzBookKeepingTransactionDataTSVFileConverter,
|
||||
transactions: services.Transactions,
|
||||
transactionCategories: services.TransactionCategories,
|
||||
transactionTags: services.TransactionTags,
|
||||
transactionPictures: services.TransactionPictures,
|
||||
accounts: services.Accounts,
|
||||
users: services.Users,
|
||||
transactions: services.Transactions,
|
||||
transactionCategories: services.TransactionCategories,
|
||||
transactionTags: services.TransactionTags,
|
||||
transactionPictures: services.TransactionPictures,
|
||||
accounts: services.Accounts,
|
||||
users: services.Users,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1034,14 +1030,10 @@ func (a *TransactionsApi) TransactionParseImportFileHandler(c *core.WebContext)
|
||||
}
|
||||
|
||||
fileType := fileTypes[0]
|
||||
var dataImporter converters.TransactionDataImporter
|
||||
dataImporter, err := converters.GetTransactionDataImporter(fileType)
|
||||
|
||||
if fileType == "ezbookkeeping_csv" {
|
||||
dataImporter = a.ezBookKeepingCsvConverter
|
||||
} else if fileType == "ezbookkeeping_tsv" {
|
||||
dataImporter = a.ezBookKeepingTsvConverter
|
||||
} else {
|
||||
return nil, errs.ErrImportFileTypeNotSupported
|
||||
if err != nil {
|
||||
return nil, errs.Or(err, errs.ErrImportFileTypeNotSupported)
|
||||
}
|
||||
|
||||
importFiles := form.File["file"]
|
||||
|
||||
+22
-32
@@ -21,16 +21,14 @@ const pageCountForDataExport = 1000
|
||||
// UserDataCli represents user data cli
|
||||
type UserDataCli struct {
|
||||
CliUsingConfig
|
||||
ezBookKeepingCsvConverter converters.TransactionDataConverter
|
||||
ezBookKeepingTsvConverter converters.TransactionDataConverter
|
||||
accounts *services.AccountService
|
||||
transactions *services.TransactionService
|
||||
categories *services.TransactionCategoryService
|
||||
tags *services.TransactionTagService
|
||||
users *services.UserService
|
||||
twoFactorAuthorizations *services.TwoFactorAuthorizationService
|
||||
tokens *services.TokenService
|
||||
forgetPasswords *services.ForgetPasswordService
|
||||
accounts *services.AccountService
|
||||
transactions *services.TransactionService
|
||||
categories *services.TransactionCategoryService
|
||||
tags *services.TransactionTagService
|
||||
users *services.UserService
|
||||
twoFactorAuthorizations *services.TwoFactorAuthorizationService
|
||||
tokens *services.TokenService
|
||||
forgetPasswords *services.ForgetPasswordService
|
||||
}
|
||||
|
||||
// Initialize an user data cli singleton instance
|
||||
@@ -39,16 +37,14 @@ var (
|
||||
CliUsingConfig: CliUsingConfig{
|
||||
container: settings.Container,
|
||||
},
|
||||
ezBookKeepingCsvConverter: converters.EzBookKeepingTransactionDataCSVFileConverter,
|
||||
ezBookKeepingTsvConverter: converters.EzBookKeepingTransactionDataTSVFileConverter,
|
||||
accounts: services.Accounts,
|
||||
transactions: services.Transactions,
|
||||
categories: services.TransactionCategories,
|
||||
tags: services.TransactionTags,
|
||||
users: services.Users,
|
||||
twoFactorAuthorizations: services.TwoFactorAuthorizations,
|
||||
tokens: services.Tokens,
|
||||
forgetPasswords: services.ForgetPasswords,
|
||||
accounts: services.Accounts,
|
||||
transactions: services.Transactions,
|
||||
categories: services.TransactionCategories,
|
||||
tags: services.TransactionTags,
|
||||
users: services.Users,
|
||||
twoFactorAuthorizations: services.TwoFactorAuthorizations,
|
||||
tokens: services.Tokens,
|
||||
forgetPasswords: services.ForgetPasswords,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -646,12 +642,10 @@ func (l *UserDataCli) ExportTransaction(c *core.CliContext, username string, fil
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var dataExporter converters.TransactionDataExporter
|
||||
dataExporter := converters.GetTransactionDataExporter(fileType)
|
||||
|
||||
if fileType == "tsv" {
|
||||
dataExporter = l.ezBookKeepingTsvConverter
|
||||
} else {
|
||||
dataExporter = l.ezBookKeepingCsvConverter
|
||||
if dataExporter == nil {
|
||||
return nil, errs.ErrNotImplemented
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
var dataImporter converters.TransactionDataImporter
|
||||
dataImporter, err := converters.GetTransactionDataImporter(fileType)
|
||||
|
||||
if fileType == "ezbookkeeping_csv" {
|
||||
dataImporter = l.ezBookKeepingCsvConverter
|
||||
} else if fileType == "ezbookkeeping_tsv" {
|
||||
dataImporter = l.ezBookKeepingTsvConverter
|
||||
} else {
|
||||
return errs.ErrImportFileTypeNotSupported
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
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