package com.airlock.iam.login.rest.infrastructure.exception.shared;

import com.airlock.iam.authentication.application.service.targetapp.TargetApplicationRepository;
import com.airlock.iam.base.infrastructure.error.ErrorResponse;
import com.airlock.iam.base.misc.log.LogUtil;
import com.airlock.iam.elog.api.ELogger;
import com.airlock.iam.elog.api.ELoggerFactory;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.ext.ExceptionMapper;
import jakarta.ws.rs.ext.Provider;

@Provider
public final class TargetApplicationNotFoundExceptionMapper implements ExceptionMapper<TargetApplicationRepository.TargetApplicationNotFoundException> {
   private static final ELogger LOG = ELoggerFactory.getLogger(TargetApplicationNotFoundExceptionMapper.class);

   public Response toResponse(TargetApplicationRepository.TargetApplicationNotFoundException exception) {
      LOG.info("Target application with ID " + LogUtil.logSafeQuote(exception.getApplicationId().getApplicationId()) + " does not exist.");
      return ErrorResponse.notFound().build().toResponse();
   }
}
