package com.l7tech.external.assertions.gatewaygraphql.server.resolver.query;

import com.l7tech.external.assertions.gatewaygraphql.EntityTypeInfo;
import com.l7tech.external.assertions.gatewaygraphql.server.data.KerberosConfig;
import com.l7tech.external.assertions.gatewaygraphql.server.data.KerberosConfigDTO;
import com.l7tech.external.assertions.gatewaygraphql.server.input.EntityFilterInput;
import com.l7tech.external.assertions.gatewaygraphql.server.util.KerberosConfigUtil;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import graphql.schema.DataFetchingEnvironment;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.logging.Logger;
import lombok.Generated;

public class KerberosConfigQueryResolver extends EntityAwareGraphQLQueryResolver<KerberosConfig, KerberosConfigDTO> {
   @Generated
   private static final Logger c = Logger.getLogger(KerberosConfigQueryResolver.class.getName());

   public KerberosConfigQueryResolver(ExecutorService var1) {
      super(EntityTypeInfo.KERBEROS_CONFIG, var1);
   }

   public CompletableFuture<List<KerberosConfigDTO>> kerberosConfigs(DataFetchingEnvironment var1) {
      return this.executeAsync(var1, () -> this.doFindAll(var1));
   }

   public CompletableFuture<List<KerberosConfigDTO>> kerberosConfigsByFilters(List<EntityFilterInput> var1, DataFetchingEnvironment var2) {
      return this.doProcessMultipleByFilters(var2, this.kerberosConfigs(var2), var1, KerberosConfigDTO.class);
   }

   protected KerberosConfigDTO toEntityDTO(KerberosConfig var1) {
      return new KerberosConfigDTO(var1);
   }

   protected KerberosConfig findByName(String var1) throws FindException {
      return this.a();
   }

   protected KerberosConfig findByGoid(Goid var1) throws FindException {
      return null;
   }

   @Override
   protected Collection<KerberosConfig> findAll() throws FindException {
      KerberosConfig var1 = this.a();

      try {
         if (var1 != null) {
            return List.of(var1);
         }
      } catch (FindException var2) {
         throw a(var2);
      }

      return List.of();
   }

   private KerberosConfig a() {
      byte[] var1 = KerberosConfigUtil.getKeytab();
      if (var1 == null) {
         return null;
      }

      KerberosConfig var2 = new KerberosConfig(var1);
      var2.setKrb5Conf(KerberosConfigUtil.getKrb5Conf());
      var2.setLoginConf(KerberosConfigUtil.getLoginConf());
      return var2;
   }

   private static FindException a(FindException var0) {
      return var0;
   }
}
