treasurer/internal/service/status/status.go

76 lines
2.3 KiB
Go
Raw Normal View History

2023-06-13 13:22:51 +00:00
package status
import (
"context"
2025-06-12 08:59:43 +00:00
"gitea.pena/PenaSide/treasurer/internal/repository"
2023-06-13 13:22:51 +00:00
2024-12-16 13:47:40 +00:00
"gitea.pena/PenaSide/treasurer/internal/errors"
"gitea.pena/PenaSide/treasurer/internal/models"
2025-06-12 08:59:43 +00:00
"go.uber.org/zap"
2023-06-13 13:22:51 +00:00
)
type Deps struct {
Logger *zap.Logger
2025-06-12 08:59:43 +00:00
PaymentRepository *repository.PaymentRepository
2023-06-13 13:22:51 +00:00
}
type Service struct {
logger *zap.Logger
2025-06-12 08:59:43 +00:00
paymentRepository *repository.PaymentRepository
2023-06-13 13:22:51 +00:00
}
func New(deps Deps) (*Service, errors.Error) {
if deps.Logger == nil {
return nil, errors.NewWithMessage("logger is nil on <NewStatusService>", errors.ErrInvalidArgs)
}
if deps.PaymentRepository == nil {
return nil, errors.NewWithMessage("PaymentRepository is nil on <NewStatusService>", errors.ErrInvalidArgs)
}
return &Service{
logger: deps.Logger,
paymentRepository: deps.PaymentRepository,
}, nil
}
2025-06-11 15:39:39 +00:00
func (s *Service) SetStatusCanceled(ctx context.Context, paymentID string) (*models.Payment, errors.Error) {
payment, err := s.paymentRepository.SetPaymentStatus(ctx, paymentID, models.PaymentStatusCanceled)
2023-06-13 13:22:51 +00:00
if err != nil {
2025-06-11 15:39:39 +00:00
s.logger.Error("failed to set payment status on <SetStatusCanceled> of <StatusService>", zap.Error(err))
2023-06-13 13:22:51 +00:00
return nil, err
}
return payment, nil
}
2025-06-11 15:39:39 +00:00
func (s *Service) SetStatusSuccess(ctx context.Context, paymentID string) (*models.Payment, errors.Error) {
payment, err := s.paymentRepository.SetPaymentStatus(ctx, paymentID, models.PaymentStatusSuccessfully)
2023-06-13 13:22:51 +00:00
if err != nil {
2025-06-11 15:39:39 +00:00
s.logger.Error("failed to set payment status on <SetStatusSuccess> of <StatusService>", zap.Error(err))
2023-06-13 13:22:51 +00:00
return nil, err
}
return payment, nil
}
2025-06-11 15:39:39 +00:00
func (s *Service) SetStatusWaiting(ctx context.Context, paymentID string) (*models.Payment, errors.Error) {
payment, err := s.paymentRepository.SetPaymentStatus(ctx, paymentID, models.PaymentStatusWaiting)
2023-06-13 13:22:51 +00:00
if err != nil {
2025-06-11 15:39:39 +00:00
s.logger.Error("failed to set payment status on <SetStatusWaiting> of <StatusService>", zap.Error(err))
2023-06-13 13:22:51 +00:00
return nil, err
}
return payment, nil
}
2025-06-11 15:39:39 +00:00
func (s *Service) SetStatusRefund(ctx context.Context, paymentID string) (*models.Payment, errors.Error) {
payment, err := s.paymentRepository.SetPaymentStatus(ctx, paymentID, models.PaymentStatusRefund)
2023-06-13 13:22:51 +00:00
if err != nil {
2025-06-11 15:39:39 +00:00
s.logger.Error("failed to set payment status on <SetStatusRefund> of <StatusService>", zap.Error(err))
2023-06-13 13:22:51 +00:00
return nil, err
}
return payment, nil
}