package com.airlock.iam.flow.shared.domain.model.mapification;

import com.airlock.iam.base.api.domain.model.mapification.MapifiedValues;
import com.airlock.iam.base.domain.model.mapification.MapifiedValuesBuilder;
import com.airlock.iam.factor.domain.model.airlock2fa.futurae.Airlock2FAFuturaeAuthSessionMapifier;
import com.airlock.iam.flow.shared.domain.model.airlock2fa.Airlock2FAOnlineApprovalSession;

public final class Airlock2FAOnlineApprovalSessionMapifier {
   private static final String SESSION_KEY = "session";

   public static MapifiedValues mapifyAirlock2FAOnlineApprovalSession(Airlock2FAOnlineApprovalSession session) {
      return MapifiedValuesBuilder.mapifiedValues()
         .put("session", Airlock2FAFuturaeAuthSessionMapifier.mapifyAirlock2FAFuturaeAuthSession(session.getSession()))
         .build();
   }

   public static Airlock2FAOnlineApprovalSession demapifyAirlock2FAOnlineApprovalSession(MapifiedValues values) {
      return Airlock2FAOnlineApprovalSession.onlineApprovalSession(
         values.demapifyValue("session", Airlock2FAFuturaeAuthSessionMapifier::demapifyAirlock2FAFuturaeAuthSession)
      );
   }

   private Airlock2FAOnlineApprovalSessionMapifier() {
   }
}
