com.firstdata.clovergo.domain.usecase.LogoutEmployee Maven / Gradle / Ivy
package com.firstdata.clovergo.domain.usecase;
import com.firstdata.clovergo.domain.model.EmployeeMerchant;
import com.firstdata.clovergo.domain.model.UseCaseConstants;
import com.firstdata.clovergo.domain.repository.AuthenticationRepository;
import javax.inject.Inject;
import io.reactivex.Completable;
/**
* Created by Arjun Chinya on 6/20/16.
*/
public class LogoutEmployee extends UseCase {
@Inject
public LogoutEmployee(com.firstdata.clovergo.domain.repository.AuthenticationRepository authenticationRepository) {
super(authenticationRepository);
}
public Completable getObservable() {
repository.log("log out");
final EmployeeMerchant employeeMerchant = repository.retrieveFromCache(UseCaseConstants.EMPLOYEE_MERCHANT);
return repository.logout(employeeMerchant.getEmployee().getSessionToken()).doOnComplete(() -> {
repository.evictFromCache(UseCaseConstants.EMPLOYEE_MERCHANT);
repository.evictFromCache(UseCaseConstants.ORDER);
});
}
}