add comments

This commit is contained in:
MaysWind
2020-12-24 09:00:39 +08:00
parent 543ed4c850
commit 14b8474192
10 changed files with 68 additions and 0 deletions
+9
View File
@@ -11,16 +11,19 @@ import (
"github.com/mayswind/lab/pkg/validators" "github.com/mayswind/lab/pkg/validators"
) )
// AccountsApi represents account api
type AccountsApi struct { type AccountsApi struct {
accounts *services.AccountService accounts *services.AccountService
} }
// Initialize an account api singleton instance
var ( var (
Accounts = &AccountsApi{ Accounts = &AccountsApi{
accounts: services.Accounts, accounts: services.Accounts,
} }
) )
// AccountListHandler returns accounts list of current user
func (a *AccountsApi) AccountListHandler(c *core.Context) (interface{}, *errs.Error) { func (a *AccountsApi) AccountListHandler(c *core.Context) (interface{}, *errs.Error) {
var accountListReq models.AccountListRequest var accountListReq models.AccountListRequest
err := c.ShouldBindQuery(&accountListReq) err := c.ShouldBindQuery(&accountListReq)
@@ -80,6 +83,7 @@ func (a *AccountsApi) AccountListHandler(c *core.Context) (interface{}, *errs.Er
return userFinalAccountResps, nil return userFinalAccountResps, nil
} }
// AccountGetHandler returns one specific account of current user
func (a *AccountsApi) AccountGetHandler(c *core.Context) (interface{}, *errs.Error) { func (a *AccountsApi) AccountGetHandler(c *core.Context) (interface{}, *errs.Error) {
var accountGetReq models.AccountGetRequest var accountGetReq models.AccountGetRequest
err := c.ShouldBindQuery(&accountGetReq) err := c.ShouldBindQuery(&accountGetReq)
@@ -122,6 +126,7 @@ func (a *AccountsApi) AccountGetHandler(c *core.Context) (interface{}, *errs.Err
return accountResp, nil return accountResp, nil
} }
// AccountCreateHandler saves a new account by request parameters for current user
func (a *AccountsApi) AccountCreateHandler(c *core.Context) (interface{}, *errs.Error) { func (a *AccountsApi) AccountCreateHandler(c *core.Context) (interface{}, *errs.Error) {
var accountCreateReq models.AccountCreateRequest var accountCreateReq models.AccountCreateRequest
err := c.ShouldBindJSON(&accountCreateReq) err := c.ShouldBindJSON(&accountCreateReq)
@@ -203,6 +208,7 @@ func (a *AccountsApi) AccountCreateHandler(c *core.Context) (interface{}, *errs.
return accountInfoResp, nil return accountInfoResp, nil
} }
// AccountModifyHandler saves an existed account by request parameters for current user
func (a *AccountsApi) AccountModifyHandler(c *core.Context) (interface{}, *errs.Error) { func (a *AccountsApi) AccountModifyHandler(c *core.Context) (interface{}, *errs.Error) {
var accountModifyReq models.AccountModifyRequest var accountModifyReq models.AccountModifyRequest
err := c.ShouldBindJSON(&accountModifyReq) err := c.ShouldBindJSON(&accountModifyReq)
@@ -276,6 +282,7 @@ func (a *AccountsApi) AccountModifyHandler(c *core.Context) (interface{}, *errs.
return true, nil return true, nil
} }
// AccountHideHandler hides an existed account by request parameters for current user
func (a *AccountsApi) AccountHideHandler(c *core.Context) (interface{}, *errs.Error) { func (a *AccountsApi) AccountHideHandler(c *core.Context) (interface{}, *errs.Error) {
var accountHideReq models.AccountHideRequest var accountHideReq models.AccountHideRequest
err := c.ShouldBindJSON(&accountHideReq) err := c.ShouldBindJSON(&accountHideReq)
@@ -297,6 +304,7 @@ func (a *AccountsApi) AccountHideHandler(c *core.Context) (interface{}, *errs.Er
return true, nil return true, nil
} }
// AccountMoveHandler moves display order of existed accounts by request parameters for current user
func (a *AccountsApi) AccountMoveHandler(c *core.Context) (interface{}, *errs.Error) { func (a *AccountsApi) AccountMoveHandler(c *core.Context) (interface{}, *errs.Error) {
var accountMoveReq models.AccountMoveRequest var accountMoveReq models.AccountMoveRequest
err := c.ShouldBindJSON(&accountMoveReq) err := c.ShouldBindJSON(&accountMoveReq)
@@ -331,6 +339,7 @@ func (a *AccountsApi) AccountMoveHandler(c *core.Context) (interface{}, *errs.Er
return true, nil return true, nil
} }
// AccountDeleteHandler deletes an existed account by request parameters for current user
func (a *AccountsApi) AccountDeleteHandler(c *core.Context) (interface{}, *errs.Error) { func (a *AccountsApi) AccountDeleteHandler(c *core.Context) (interface{}, *errs.Error) {
var accountDeleteReq models.AccountDeleteRequest var accountDeleteReq models.AccountDeleteRequest
err := c.ShouldBindJSON(&accountDeleteReq) err := c.ShouldBindJSON(&accountDeleteReq)
+5
View File
@@ -10,12 +10,14 @@ import (
"github.com/mayswind/lab/pkg/services" "github.com/mayswind/lab/pkg/services"
) )
// AuthorizationsApi represents authorization api
type AuthorizationsApi struct { type AuthorizationsApi struct {
users *services.UserService users *services.UserService
tokens *services.TokenService tokens *services.TokenService
twoFactorAuthorizations *services.TwoFactorAuthorizationService twoFactorAuthorizations *services.TwoFactorAuthorizationService
} }
// Initialize a authorization api singleton instance
var ( var (
Authorizations = &AuthorizationsApi{ Authorizations = &AuthorizationsApi{
users: services.Users, users: services.Users,
@@ -24,6 +26,7 @@ var (
} }
) )
// AuthorizeHandler verifies and authorizes current login request
func (a *AuthorizationsApi) AuthorizeHandler(c *core.Context) (interface{}, *errs.Error) { func (a *AuthorizationsApi) AuthorizeHandler(c *core.Context) (interface{}, *errs.Error) {
var credential models.UserLoginRequest var credential models.UserLoginRequest
err := c.ShouldBindJSON(&credential) err := c.ShouldBindJSON(&credential)
@@ -79,6 +82,7 @@ func (a *AuthorizationsApi) AuthorizeHandler(c *core.Context) (interface{}, *err
return authResp, nil return authResp, nil
} }
// TwoFactorAuthorizeHandler verifies and authorizes current 2fa login by passcode
func (a *AuthorizationsApi) TwoFactorAuthorizeHandler(c *core.Context) (interface{}, *errs.Error) { func (a *AuthorizationsApi) TwoFactorAuthorizeHandler(c *core.Context) (interface{}, *errs.Error) {
var credential models.TwoFactorLoginRequest var credential models.TwoFactorLoginRequest
err := c.ShouldBindJSON(&credential) err := c.ShouldBindJSON(&credential)
@@ -130,6 +134,7 @@ func (a *AuthorizationsApi) TwoFactorAuthorizeHandler(c *core.Context) (interfac
return authResp, nil return authResp, nil
} }
// TwoFactorAuthorizeByRecoveryCodeHandler verifies and authorizes current 2fa login by recovery code
func (a *AuthorizationsApi) TwoFactorAuthorizeByRecoveryCodeHandler(c *core.Context) (interface{}, *errs.Error) { func (a *AuthorizationsApi) TwoFactorAuthorizeByRecoveryCodeHandler(c *core.Context) (interface{}, *errs.Error) {
var credential models.TwoFactorRecoveryCodeLoginRequest var credential models.TwoFactorRecoveryCodeLoginRequest
err := c.ShouldBindJSON(&credential) err := c.ShouldBindJSON(&credential)
+4
View File
@@ -5,16 +5,20 @@ import (
"github.com/mayswind/lab/pkg/errs" "github.com/mayswind/lab/pkg/errs"
) )
// DefaultApi represents default api
type DefaultApi struct{} type DefaultApi struct{}
// Initialize a default api singleton instance
var ( var (
Default = &DefaultApi{} Default = &DefaultApi{}
) )
// ApiNotFound returns api not found error
func (a *DefaultApi) ApiNotFound(c *core.Context) (interface{}, *errs.Error) { func (a *DefaultApi) ApiNotFound(c *core.Context) (interface{}, *errs.Error) {
return nil, errs.ErrApiNotFound return nil, errs.ErrApiNotFound
} }
// MethodNotAllowed returns method not allowed error
func (a *DefaultApi) MethodNotAllowed(c *core.Context) (interface{}, *errs.Error) { func (a *DefaultApi) MethodNotAllowed(c *core.Context) (interface{}, *errs.Error) {
return nil, errs.ErrMethodNotAllowed return nil, errs.ErrMethodNotAllowed
} }
+4
View File
@@ -11,14 +11,18 @@ import (
"github.com/mayswind/lab/pkg/models" "github.com/mayswind/lab/pkg/models"
) )
// EuroCentralBankExchangeRateUrl represents euro central bank exchange rate date url
const EuroCentralBankExchangeRateUrl = "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml" const EuroCentralBankExchangeRateUrl = "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"
// ExchangeRatesApi represents exchange rate api
type ExchangeRatesApi struct{} type ExchangeRatesApi struct{}
// Initialize a exchange rate api singleton instance
var ( var (
ExchangeRates = &ExchangeRatesApi{} ExchangeRates = &ExchangeRatesApi{}
) )
// LatestExchangeRateHandler returns latest exchange rate data
func (a *ExchangeRatesApi) LatestExchangeRateHandler(c *core.Context) (interface{}, *errs.Error) { func (a *ExchangeRatesApi) LatestExchangeRateHandler(c *core.Context) (interface{}, *errs.Error) {
uid := c.GetCurrentUid() uid := c.GetCurrentUid()
resp, err := http.Get(EuroCentralBankExchangeRateUrl) resp, err := http.Get(EuroCentralBankExchangeRateUrl)
+7
View File
@@ -11,11 +11,13 @@ import (
"github.com/mayswind/lab/pkg/utils" "github.com/mayswind/lab/pkg/utils"
) )
// TokensApi represents token api
type TokensApi struct { type TokensApi struct {
tokens *services.TokenService tokens *services.TokenService
users *services.UserService users *services.UserService
} }
// Initialize a token api singleton instance
var ( var (
Tokens = &TokensApi{ Tokens = &TokensApi{
tokens: services.Tokens, tokens: services.Tokens,
@@ -23,6 +25,7 @@ var (
} }
) )
// TokenListHandler returns available token list of current user
func (a *TokensApi) TokenListHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TokensApi) TokenListHandler(c *core.Context) (interface{}, *errs.Error) {
uid := c.GetCurrentUid() uid := c.GetCurrentUid()
tokens, err := a.tokens.GetAllUnexpiredNormalTokensByUid(uid) tokens, err := a.tokens.GetAllUnexpiredNormalTokensByUid(uid)
@@ -57,6 +60,7 @@ func (a *TokensApi) TokenListHandler(c *core.Context) (interface{}, *errs.Error)
return tokenResps, nil return tokenResps, nil
} }
// TokenRevokeCurrentHandler revokes current token of current user
func (a *TokensApi) TokenRevokeCurrentHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TokensApi) TokenRevokeCurrentHandler(c *core.Context) (interface{}, *errs.Error) {
_, claims, err := a.tokens.ParseToken(c) _, claims, err := a.tokens.ParseToken(c)
@@ -96,6 +100,7 @@ func (a *TokensApi) TokenRevokeCurrentHandler(c *core.Context) (interface{}, *er
return true, nil return true, nil
} }
// TokenRevokeHandler revokes specific token of current user
func (a *TokensApi) TokenRevokeHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TokensApi) TokenRevokeHandler(c *core.Context) (interface{}, *errs.Error) {
var tokenRevokeReq models.TokenRevokeRequest var tokenRevokeReq models.TokenRevokeRequest
err := c.ShouldBindJSON(&tokenRevokeReq) err := c.ShouldBindJSON(&tokenRevokeReq)
@@ -133,6 +138,7 @@ func (a *TokensApi) TokenRevokeHandler(c *core.Context) (interface{}, *errs.Erro
return true, nil return true, nil
} }
// TokenRevokeAllHandler revokes all tokens of current user except current token
func (a *TokensApi) TokenRevokeAllHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TokensApi) TokenRevokeAllHandler(c *core.Context) (interface{}, *errs.Error) {
uid := c.GetCurrentUid() uid := c.GetCurrentUid()
tokens, err := a.tokens.GetAllTokensByUid(uid) tokens, err := a.tokens.GetAllTokensByUid(uid)
@@ -167,6 +173,7 @@ func (a *TokensApi) TokenRevokeAllHandler(c *core.Context) (interface{}, *errs.E
return true, nil return true, nil
} }
// TokenRefreshHandler refresh current token of current user
func (a *TokensApi) TokenRefreshHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TokensApi) TokenRefreshHandler(c *core.Context) (interface{}, *errs.Error) {
uid := c.GetCurrentUid() uid := c.GetCurrentUid()
user, err := a.users.GetUserById(uid) user, err := a.users.GetUserById(uid)
+10
View File
@@ -10,16 +10,19 @@ import (
"github.com/mayswind/lab/pkg/services" "github.com/mayswind/lab/pkg/services"
) )
// TransactionCategoriesApi represents transaction category api
type TransactionCategoriesApi struct { type TransactionCategoriesApi struct {
categories *services.TransactionCategoryService categories *services.TransactionCategoryService
} }
// Initialize a transaction category api singleton instance
var ( var (
TransactionCategories = &TransactionCategoriesApi{ TransactionCategories = &TransactionCategoriesApi{
categories: services.TransactionCategories, categories: services.TransactionCategories,
} }
) )
// CategoryListHandler returns transaction category list of current user
func (a *TransactionCategoriesApi) CategoryListHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionCategoriesApi) CategoryListHandler(c *core.Context) (interface{}, *errs.Error) {
var categoryListReq models.TransactionCategoryListRequest var categoryListReq models.TransactionCategoryListRequest
err := c.ShouldBindQuery(&categoryListReq) err := c.ShouldBindQuery(&categoryListReq)
@@ -40,6 +43,7 @@ func (a *TransactionCategoriesApi) CategoryListHandler(c *core.Context) (interfa
return a.getTransactionCategoryListByTypeResponse(categories, categoryListReq.ParentId) return a.getTransactionCategoryListByTypeResponse(categories, categoryListReq.ParentId)
} }
// CategoryGetHandler returns one specific transaction category of current user
func (a *TransactionCategoriesApi) CategoryGetHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionCategoriesApi) CategoryGetHandler(c *core.Context) (interface{}, *errs.Error) {
var categoryGetReq models.TransactionCategoryGetRequest var categoryGetReq models.TransactionCategoryGetRequest
err := c.ShouldBindQuery(&categoryGetReq) err := c.ShouldBindQuery(&categoryGetReq)
@@ -62,6 +66,7 @@ func (a *TransactionCategoriesApi) CategoryGetHandler(c *core.Context) (interfac
return categoryResp, nil return categoryResp, nil
} }
// CategoryCreateHandler saves a new transaction category by request parameters for current user
func (a *TransactionCategoriesApi) CategoryCreateHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionCategoriesApi) CategoryCreateHandler(c *core.Context) (interface{}, *errs.Error) {
var categoryCreateReq models.TransactionCategoryCreateRequest var categoryCreateReq models.TransactionCategoryCreateRequest
err := c.ShouldBindJSON(&categoryCreateReq) err := c.ShouldBindJSON(&categoryCreateReq)
@@ -126,6 +131,7 @@ func (a *TransactionCategoriesApi) CategoryCreateHandler(c *core.Context) (inter
return categoryResp, nil return categoryResp, nil
} }
// CategoryCreateBatchHandler saves some new transaction category by request parameters for current user
func (a *TransactionCategoriesApi) CategoryCreateBatchHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionCategoriesApi) CategoryCreateBatchHandler(c *core.Context) (interface{}, *errs.Error) {
var categoryCreateBatchReq models.TransactionCategoryCreateBatchRequest var categoryCreateBatchReq models.TransactionCategoryCreateBatchRequest
err := c.ShouldBindJSON(&categoryCreateBatchReq) err := c.ShouldBindJSON(&categoryCreateBatchReq)
@@ -187,6 +193,7 @@ func (a *TransactionCategoriesApi) CategoryCreateBatchHandler(c *core.Context) (
return a.getTransactionCategoryListByTypeResponse(categories, 0) return a.getTransactionCategoryListByTypeResponse(categories, 0)
} }
// CategoryModifyHandler saves an existed transaction category by request parameters for current user
func (a *TransactionCategoriesApi) CategoryModifyHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionCategoriesApi) CategoryModifyHandler(c *core.Context) (interface{}, *errs.Error) {
var categoryModifyReq models.TransactionCategoryModifyRequest var categoryModifyReq models.TransactionCategoryModifyRequest
err := c.ShouldBindJSON(&categoryModifyReq) err := c.ShouldBindJSON(&categoryModifyReq)
@@ -234,6 +241,7 @@ func (a *TransactionCategoriesApi) CategoryModifyHandler(c *core.Context) (inter
return true, nil return true, nil
} }
// CategoryHideHandler hides an existed transaction category by request parameters for current user
func (a *TransactionCategoriesApi) CategoryHideHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionCategoriesApi) CategoryHideHandler(c *core.Context) (interface{}, *errs.Error) {
var categoryHideReq models.TransactionCategoryHideRequest var categoryHideReq models.TransactionCategoryHideRequest
err := c.ShouldBindJSON(&categoryHideReq) err := c.ShouldBindJSON(&categoryHideReq)
@@ -255,6 +263,7 @@ func (a *TransactionCategoriesApi) CategoryHideHandler(c *core.Context) (interfa
return true, nil return true, nil
} }
// CategoryMoveHandler moves display order of existed transaction categories by request parameters for current user
func (a *TransactionCategoriesApi) CategoryMoveHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionCategoriesApi) CategoryMoveHandler(c *core.Context) (interface{}, *errs.Error) {
var categoryMoveReq models.TransactionCategoryMoveRequest var categoryMoveReq models.TransactionCategoryMoveRequest
err := c.ShouldBindJSON(&categoryMoveReq) err := c.ShouldBindJSON(&categoryMoveReq)
@@ -289,6 +298,7 @@ func (a *TransactionCategoriesApi) CategoryMoveHandler(c *core.Context) (interfa
return true, nil return true, nil
} }
// CategoryDeleteHandler deletes an existed transaction category by request parameters for current user
func (a *TransactionCategoriesApi) CategoryDeleteHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionCategoriesApi) CategoryDeleteHandler(c *core.Context) (interface{}, *errs.Error) {
var categoryDeleteReq models.TransactionCategoryDeleteRequest var categoryDeleteReq models.TransactionCategoryDeleteRequest
err := c.ShouldBindJSON(&categoryDeleteReq) err := c.ShouldBindJSON(&categoryDeleteReq)
+9
View File
@@ -10,16 +10,19 @@ import (
"github.com/mayswind/lab/pkg/services" "github.com/mayswind/lab/pkg/services"
) )
// TransactionTagsApi represents transaction tag api
type TransactionTagsApi struct { type TransactionTagsApi struct {
tags *services.TransactionTagService tags *services.TransactionTagService
} }
// Initialize a transaction tag api singleton instance
var ( var (
TransactionTags = &TransactionTagsApi{ TransactionTags = &TransactionTagsApi{
tags: services.TransactionTags, tags: services.TransactionTags,
} }
) )
// TagListHandler returns transaction tag list of current user
func (a *TransactionTagsApi) TagListHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionTagsApi) TagListHandler(c *core.Context) (interface{}, *errs.Error) {
uid := c.GetCurrentUid() uid := c.GetCurrentUid()
tags, err := a.tags.GetAllTagsByUid(uid) tags, err := a.tags.GetAllTagsByUid(uid)
@@ -40,6 +43,7 @@ func (a *TransactionTagsApi) TagListHandler(c *core.Context) (interface{}, *errs
return tagResps, nil return tagResps, nil
} }
// TagGetHandler returns one specific transaction tag of current user
func (a *TransactionTagsApi) TagGetHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionTagsApi) TagGetHandler(c *core.Context) (interface{}, *errs.Error) {
var tagGetReq models.TransactionTagGetRequest var tagGetReq models.TransactionTagGetRequest
err := c.ShouldBindQuery(&tagGetReq) err := c.ShouldBindQuery(&tagGetReq)
@@ -62,6 +66,7 @@ func (a *TransactionTagsApi) TagGetHandler(c *core.Context) (interface{}, *errs.
return tagResp, nil return tagResp, nil
} }
// TagCreateHandler saves a new transaction tag by request parameters for current user
func (a *TransactionTagsApi) TagCreateHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionTagsApi) TagCreateHandler(c *core.Context) (interface{}, *errs.Error) {
var tagCreateReq models.TransactionTagCreateRequest var tagCreateReq models.TransactionTagCreateRequest
err := c.ShouldBindJSON(&tagCreateReq) err := c.ShouldBindJSON(&tagCreateReq)
@@ -96,6 +101,7 @@ func (a *TransactionTagsApi) TagCreateHandler(c *core.Context) (interface{}, *er
return tagResp, nil return tagResp, nil
} }
// TagModifyHandler saves an existed transaction tag by request parameters for current user
func (a *TransactionTagsApi) TagModifyHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionTagsApi) TagModifyHandler(c *core.Context) (interface{}, *errs.Error) {
var tagModifyReq models.TransactionTagModifyRequest var tagModifyReq models.TransactionTagModifyRequest
err := c.ShouldBindJSON(&tagModifyReq) err := c.ShouldBindJSON(&tagModifyReq)
@@ -138,6 +144,7 @@ func (a *TransactionTagsApi) TagModifyHandler(c *core.Context) (interface{}, *er
return tagResp, nil return tagResp, nil
} }
// TagHideHandler hides an transaction tag by request parameters for current user
func (a *TransactionTagsApi) TagHideHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionTagsApi) TagHideHandler(c *core.Context) (interface{}, *errs.Error) {
var tagHideReq models.TransactionTagHideRequest var tagHideReq models.TransactionTagHideRequest
err := c.ShouldBindJSON(&tagHideReq) err := c.ShouldBindJSON(&tagHideReq)
@@ -159,6 +166,7 @@ func (a *TransactionTagsApi) TagHideHandler(c *core.Context) (interface{}, *errs
return true, nil return true, nil
} }
// TagMoveHandler moves display order of existed transaction tags by request parameters for current user
func (a *TransactionTagsApi) TagMoveHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionTagsApi) TagMoveHandler(c *core.Context) (interface{}, *errs.Error) {
var tagMoveReq models.TransactionTagMoveRequest var tagMoveReq models.TransactionTagMoveRequest
err := c.ShouldBindJSON(&tagMoveReq) err := c.ShouldBindJSON(&tagMoveReq)
@@ -193,6 +201,7 @@ func (a *TransactionTagsApi) TagMoveHandler(c *core.Context) (interface{}, *errs
return true, nil return true, nil
} }
// TagDeleteHandler deletes an existed transaction tag by request parameters for current user
func (a *TransactionTagsApi) TagDeleteHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionTagsApi) TagDeleteHandler(c *core.Context) (interface{}, *errs.Error) {
var tagDeleteReq models.TransactionTagDeleteRequest var tagDeleteReq models.TransactionTagDeleteRequest
err := c.ShouldBindJSON(&tagDeleteReq) err := c.ShouldBindJSON(&tagDeleteReq)
+8
View File
@@ -11,11 +11,13 @@ import (
"github.com/mayswind/lab/pkg/utils" "github.com/mayswind/lab/pkg/utils"
) )
// TransactionsApi represents transaction api
type TransactionsApi struct { type TransactionsApi struct {
transactions *services.TransactionService transactions *services.TransactionService
transactionTags *services.TransactionTagService transactionTags *services.TransactionTagService
} }
// Initialize a transaction api singleton instance
var ( var (
Transactions = &TransactionsApi{ Transactions = &TransactionsApi{
transactions: services.Transactions, transactions: services.Transactions,
@@ -23,6 +25,7 @@ var (
} }
) )
// TransactionListHandler returns transaction list of current user
func (a *TransactionsApi) TransactionListHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionsApi) TransactionListHandler(c *core.Context) (interface{}, *errs.Error) {
var transactionListReq models.TransactionListByMaxTimeRequest var transactionListReq models.TransactionListByMaxTimeRequest
err := c.ShouldBindQuery(&transactionListReq) err := c.ShouldBindQuery(&transactionListReq)
@@ -76,6 +79,7 @@ func (a *TransactionsApi) TransactionListHandler(c *core.Context) (interface{},
return transactionResps, nil return transactionResps, nil
} }
// TransactionMonthListHandler returns transaction list of current user by month
func (a *TransactionsApi) TransactionMonthListHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionsApi) TransactionMonthListHandler(c *core.Context) (interface{}, *errs.Error) {
var transactionListReq models.TransactionListInMonthByPageRequest var transactionListReq models.TransactionListInMonthByPageRequest
err := c.ShouldBindQuery(&transactionListReq) err := c.ShouldBindQuery(&transactionListReq)
@@ -116,6 +120,7 @@ func (a *TransactionsApi) TransactionMonthListHandler(c *core.Context) (interfac
return transactionResps, nil return transactionResps, nil
} }
// TransactionGetHandler returns one specific transaction of current user
func (a *TransactionsApi) TransactionGetHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionsApi) TransactionGetHandler(c *core.Context) (interface{}, *errs.Error) {
var transactionGetReq models.TransactionGetRequest var transactionGetReq models.TransactionGetRequest
err := c.ShouldBindQuery(&transactionGetReq) err := c.ShouldBindQuery(&transactionGetReq)
@@ -146,6 +151,7 @@ func (a *TransactionsApi) TransactionGetHandler(c *core.Context) (interface{}, *
return transactionResp, nil return transactionResp, nil
} }
// TransactionCreateHandler saves a new transaction by request parameters for current user
func (a *TransactionsApi) TransactionCreateHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionsApi) TransactionCreateHandler(c *core.Context) (interface{}, *errs.Error) {
var transactionCreateReq models.TransactionCreateRequest var transactionCreateReq models.TransactionCreateRequest
err := c.ShouldBindJSON(&transactionCreateReq) err := c.ShouldBindJSON(&transactionCreateReq)
@@ -195,6 +201,7 @@ func (a *TransactionsApi) TransactionCreateHandler(c *core.Context) (interface{}
return transactionResp, nil return transactionResp, nil
} }
// TransactionModifyHandler saves an existed transaction by request parameters for current user
func (a *TransactionsApi) TransactionModifyHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionsApi) TransactionModifyHandler(c *core.Context) (interface{}, *errs.Error) {
var transactionModifyReq models.TransactionModifyRequest var transactionModifyReq models.TransactionModifyRequest
err := c.ShouldBindJSON(&transactionModifyReq) err := c.ShouldBindJSON(&transactionModifyReq)
@@ -259,6 +266,7 @@ func (a *TransactionsApi) TransactionModifyHandler(c *core.Context) (interface{}
return true, nil return true, nil
} }
// TransactionDeleteHandler deletes an existed transaction by request parameters for current user
func (a *TransactionsApi) TransactionDeleteHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TransactionsApi) TransactionDeleteHandler(c *core.Context) (interface{}, *errs.Error) {
var transactionDeleteReq models.TransactionDeleteRequest var transactionDeleteReq models.TransactionDeleteRequest
err := c.ShouldBindJSON(&transactionDeleteReq) err := c.ShouldBindJSON(&transactionDeleteReq)
+7
View File
@@ -15,12 +15,14 @@ import (
"github.com/mayswind/lab/pkg/services" "github.com/mayswind/lab/pkg/services"
) )
// TwoFactorAuthorizationsApi represents 2fa api
type TwoFactorAuthorizationsApi struct { type TwoFactorAuthorizationsApi struct {
twoFactorAuthorizations *services.TwoFactorAuthorizationService twoFactorAuthorizations *services.TwoFactorAuthorizationService
users *services.UserService users *services.UserService
tokens *services.TokenService tokens *services.TokenService
} }
// Initialize a 2fa api singleton instance
var ( var (
TwoFactorAuthorizations = &TwoFactorAuthorizationsApi{ TwoFactorAuthorizations = &TwoFactorAuthorizationsApi{
twoFactorAuthorizations: services.TwoFactorAuthorizations, twoFactorAuthorizations: services.TwoFactorAuthorizations,
@@ -29,6 +31,7 @@ var (
} }
) )
// TwoFactorStatusHandler returns 2fa status of current user
func (a *TwoFactorAuthorizationsApi) TwoFactorStatusHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TwoFactorAuthorizationsApi) TwoFactorStatusHandler(c *core.Context) (interface{}, *errs.Error) {
uid := c.GetCurrentUid() uid := c.GetCurrentUid()
twoFactorSetting, err := a.twoFactorAuthorizations.GetUserTwoFactorSettingByUid(uid) twoFactorSetting, err := a.twoFactorAuthorizations.GetUserTwoFactorSettingByUid(uid)
@@ -54,6 +57,7 @@ func (a *TwoFactorAuthorizationsApi) TwoFactorStatusHandler(c *core.Context) (in
return statusResp, nil return statusResp, nil
} }
// TwoFactorEnableRequestHandler returns a new 2fa secret and qr code for current user to set 2fa and verify passcode next
func (a *TwoFactorAuthorizationsApi) TwoFactorEnableRequestHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TwoFactorAuthorizationsApi) TwoFactorEnableRequestHandler(c *core.Context) (interface{}, *errs.Error) {
uid := c.GetCurrentUid() uid := c.GetCurrentUid()
enabled, err := a.twoFactorAuthorizations.ExistsTwoFactorSetting(uid) enabled, err := a.twoFactorAuthorizations.ExistsTwoFactorSetting(uid)
@@ -105,6 +109,7 @@ func (a *TwoFactorAuthorizationsApi) TwoFactorEnableRequestHandler(c *core.Conte
return enableResp, nil return enableResp, nil
} }
// TwoFactorEnableConfirmHandler enables 2fa for current user
func (a *TwoFactorAuthorizationsApi) TwoFactorEnableConfirmHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TwoFactorAuthorizationsApi) TwoFactorEnableConfirmHandler(c *core.Context) (interface{}, *errs.Error) {
var confirmReq models.TwoFactorEnableConfirmRequest var confirmReq models.TwoFactorEnableConfirmRequest
err := c.ShouldBindJSON(&confirmReq) err := c.ShouldBindJSON(&confirmReq)
@@ -202,6 +207,7 @@ func (a *TwoFactorAuthorizationsApi) TwoFactorEnableConfirmHandler(c *core.Conte
return confirmResp, nil return confirmResp, nil
} }
// TwoFactorDisableHandler disables 2fa for current user
func (a *TwoFactorAuthorizationsApi) TwoFactorDisableHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TwoFactorAuthorizationsApi) TwoFactorDisableHandler(c *core.Context) (interface{}, *errs.Error) {
var disableReq models.TwoFactorDisableRequest var disableReq models.TwoFactorDisableRequest
err := c.ShouldBindJSON(&disableReq) err := c.ShouldBindJSON(&disableReq)
@@ -256,6 +262,7 @@ func (a *TwoFactorAuthorizationsApi) TwoFactorDisableHandler(c *core.Context) (i
return true, nil return true, nil
} }
// TwoFactorRecoveryCodeRegenerateHandler returns new 2fa recovery codes and revokes old recovery codes for current user
func (a *TwoFactorAuthorizationsApi) TwoFactorRecoveryCodeRegenerateHandler(c *core.Context) (interface{}, *errs.Error) { func (a *TwoFactorAuthorizationsApi) TwoFactorRecoveryCodeRegenerateHandler(c *core.Context) (interface{}, *errs.Error) {
var regenerateReq models.TwoFactorRegenerateRecoveryCodeRequest var regenerateReq models.TwoFactorRegenerateRecoveryCodeRequest
err := c.ShouldBindJSON(&regenerateReq) err := c.ShouldBindJSON(&regenerateReq)
+5
View File
@@ -11,11 +11,13 @@ import (
"github.com/mayswind/lab/pkg/services" "github.com/mayswind/lab/pkg/services"
) )
// UsersApi represents user api
type UsersApi struct { type UsersApi struct {
users *services.UserService users *services.UserService
tokens *services.TokenService tokens *services.TokenService
} }
// Initialize a user api singleton instance
var ( var (
Users = &UsersApi{ Users = &UsersApi{
users: services.Users, users: services.Users,
@@ -23,6 +25,7 @@ var (
} }
) )
// UserRegisterHandler saves a new user by request parameters
func (a *UsersApi) UserRegisterHandler(c *core.Context) (interface{}, *errs.Error) { func (a *UsersApi) UserRegisterHandler(c *core.Context) (interface{}, *errs.Error) {
var userRegisterReq models.UserRegisterRequest var userRegisterReq models.UserRegisterRequest
err := c.ShouldBindJSON(&userRegisterReq) err := c.ShouldBindJSON(&userRegisterReq)
@@ -73,6 +76,7 @@ func (a *UsersApi) UserRegisterHandler(c *core.Context) (interface{}, *errs.Erro
return authResp, nil return authResp, nil
} }
// UserProfileHandler returns user profile of current user
func (a *UsersApi) UserProfileHandler(c *core.Context) (interface{}, *errs.Error) { func (a *UsersApi) UserProfileHandler(c *core.Context) (interface{}, *errs.Error) {
uid := c.GetCurrentUid() uid := c.GetCurrentUid()
user, err := a.users.GetUserById(uid) user, err := a.users.GetUserById(uid)
@@ -89,6 +93,7 @@ func (a *UsersApi) UserProfileHandler(c *core.Context) (interface{}, *errs.Error
return userResp, nil return userResp, nil
} }
// UserUpdateProfileHandler saves user profile by request parameters for current user
func (a *UsersApi) UserUpdateProfileHandler(c *core.Context) (interface{}, *errs.Error) { func (a *UsersApi) UserUpdateProfileHandler(c *core.Context) (interface{}, *errs.Error) {
var userUpdateReq models.UserProfileUpdateRequest var userUpdateReq models.UserProfileUpdateRequest
err := c.ShouldBindJSON(&userUpdateReq) err := c.ShouldBindJSON(&userUpdateReq)