added validation; DB is global now
This commit is contained in:
@@ -3,35 +3,50 @@ package services
|
||||
import (
|
||||
"GoMembership/internal/models"
|
||||
"GoMembership/internal/repositories"
|
||||
"GoMembership/pkg/errors"
|
||||
"slices"
|
||||
"time"
|
||||
)
|
||||
|
||||
type MembershipService interface {
|
||||
type MembershipServiceInterface interface {
|
||||
RegisterMembership(membership *models.Membership) (int64, error)
|
||||
FindMembershipByUserID(userID int64) (*models.Membership, error)
|
||||
RegisterSubscription(subscription *models.SubscriptionModel) (int64, error)
|
||||
GetMembershipModelNames() ([]string, error)
|
||||
GetModelByName(modelname *string) (*models.SubscriptionModel, error)
|
||||
}
|
||||
|
||||
type membershipService struct {
|
||||
repo repositories.MembershipRepository
|
||||
subscriptionRepo repositories.SubscriptionModelsRepository
|
||||
type MembershipService struct {
|
||||
Repo repositories.MembershipRepositoryInterface
|
||||
SubscriptionRepo repositories.SubscriptionModelsRepositoryInterface
|
||||
}
|
||||
|
||||
func NewMembershipService(repo repositories.MembershipRepository, subscriptionRepo repositories.SubscriptionModelsRepository) MembershipService {
|
||||
return &membershipService{repo, subscriptionRepo}
|
||||
}
|
||||
|
||||
func (service *membershipService) RegisterMembership(membership *models.Membership) (int64, error) {
|
||||
func (service *MembershipService) RegisterMembership(membership *models.Membership) (int64, error) {
|
||||
membership.StartDate = time.Now()
|
||||
return service.repo.CreateMembership(membership)
|
||||
return service.Repo.CreateMembership(membership)
|
||||
}
|
||||
|
||||
func (service *membershipService) FindMembershipByUserID(userID int64) (*models.Membership, error) {
|
||||
return service.repo.FindMembershipByUserID(userID)
|
||||
func (service *MembershipService) FindMembershipByUserID(userID int64) (*models.Membership, error) {
|
||||
return service.Repo.FindMembershipByUserID(userID)
|
||||
}
|
||||
|
||||
// Membership_Subscriptions
|
||||
|
||||
func (service *membershipService) RegisterSubscription(subscription *models.SubscriptionModel) (int64, error) {
|
||||
return service.subscriptionRepo.CreateSubscriptionModel(subscription)
|
||||
func (service *MembershipService) RegisterSubscription(subscription *models.SubscriptionModel) (int64, error) {
|
||||
return service.SubscriptionRepo.CreateSubscriptionModel(subscription)
|
||||
}
|
||||
|
||||
func (service *MembershipService) GetMembershipModelNames() ([]string, error) {
|
||||
return service.SubscriptionRepo.GetMembershipModelNames()
|
||||
}
|
||||
|
||||
func (service *MembershipService) GetModelByName(modelname *string) (*models.SubscriptionModel, error) {
|
||||
sModelNames, err := service.SubscriptionRepo.GetMembershipModelNames()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if !slices.Contains(sModelNames, *modelname) {
|
||||
return nil, errors.ErrNotFound
|
||||
}
|
||||
return service.SubscriptionRepo.GetModelByName(modelname)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user