forked from ebhomengo/niki
40 lines
1.2 KiB
Go
40 lines
1.2 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.gocasts.ir/ebhomengo/niki/domain/wallet/entity"
|
|
"git.gocasts.ir/ebhomengo/niki/domain/wallet/param"
|
|
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
|
)
|
|
|
|
func (s Service) GetUserTransactionHistory(ctx context.Context, request param.TransactionRequest) (param.TransactionResponse, error) {
|
|
const op = richerror.Op("wallet.service.GetUserTransactionHistory")
|
|
|
|
transactionList, err := s.repo.GetTransactionListByUserID(ctx, request.UserID)
|
|
|
|
if err != nil {
|
|
return param.TransactionResponse{}, err
|
|
}
|
|
|
|
return param.TransactionResponse{Transaction: transactionEntityToTransactionInfo(transactionList)}, nil
|
|
|
|
}
|
|
|
|
func transactionEntityToTransactionInfo(TransactionList []entity.Transaction) []param.TransactionInfo {
|
|
transactionInfoList := make([]param.TransactionInfo, len(TransactionList))
|
|
for i, transaction := range TransactionList {
|
|
transactionInfoList[i] = param.TransactionInfo{
|
|
ID: transaction.ID,
|
|
UserID: transaction.UserID,
|
|
Amount: transaction.Amount,
|
|
Currency: transaction.Currency,
|
|
ActionType: transaction.ActionType,
|
|
Timestamp: transaction.Timestamp,
|
|
}
|
|
}
|
|
|
|
return transactionInfoList
|
|
|
|
}
|