package com.airlock.iam.techclientreg.impl.domain.model.request;

import com.airlock.iam.base.api.domain.model.mapification.MapifiedValues;
import com.airlock.iam.common.api.domain.model.certificate.CertificateX500Name;
import java.util.Base64;
import java.util.Map;
import javax.security.auth.x500.X500Principal;

public final class CertificateX500NameMapificationUtil {
   private static final String ENCODED_KEY = "encoded";

   public static MapifiedValues mapifyCertificateX500Name(CertificateX500Name name) {
      return new MapifiedValues(Map.of("encoded", Base64.getEncoder().encodeToString(name.getEncoded())));
   }

   public static CertificateX500Name demapifyCertificateX500Name(MapifiedValues values) {
      return new CertificateX500Name(new X500Principal(values.simpleValue("encoded", Base64.getDecoder()::decode)));
   }
}
