package com.airlock.iam.common.domain.service.sso;

import com.airlock.iam.core.misc.util.ticket.Ticket;
import jakarta.inject.Inject;
import jakarta.inject.Provider;

public final class AcceptedSsoTicketServiceImpl implements AcceptedSsoTicketService {
   private final Provider<AcceptedSsoTicketRepository> repository;

   @Inject
   public AcceptedSsoTicketServiceImpl(Provider<AcceptedSsoTicketRepository> repository) {
      this.repository = repository;
   }

   @Override
   public boolean alreadyAccepted(Ticket ssoTicket) {
      return ((AcceptedSsoTicketRepository)this.repository.get()).containsAcceptedTicket(ssoTicket.getTicketId());
   }

   @Override
   public void accept(Ticket ssoTicket) {
      ((AcceptedSsoTicketRepository)this.repository.get()).storeAcceptedTicket(ssoTicket.getTicketId(), ssoTicket.getExpiry());
   }
}
