package usecase
import (
"context"
domainNewsletter "github.com/aldinokemal/go-whatsapp-web-multidevice/domains/newsletter"
"github.com/aldinokemal/go-whatsapp-web-multidevice/infrastructure/whatsapp"
"github.com/aldinokemal/go-whatsapp-web-multidevice/pkg/utils"
"github.com/aldinokemal/go-whatsapp-web-multidevice/validations"
)
type serviceNewsletter struct{}
func NewNewsletterService() domainNewsletter.INewsletterUsecase {
return &serviceNewsletter{}
}
func (service serviceNewsletter) Unfollow(ctx context.Context, request domainNewsletter.UnfollowRequest) (err error) {
if err = validations.ValidateUnfollowNewsletter(ctx, request); err != nil {
return err
}
JID, err := utils.ValidateJidWithLogin(whatsapp.GetClient(), request.NewsletterID)
if err != nil {
return err
}
return whatsapp.GetClient().UnfollowNewsletter(JID)
}