package com.airlock.iam.common.domain.model.encoder;

import com.airlock.iam.base.api.domain.model.plugin.LogicForConfig;
import com.airlock.iam.base.domain.service.uri.UrlUtils;
import com.airlock.iam.common.api.domain.model.encoder.StringEncoder;
import com.airlock.iam.common.application.configuration.encoder.UrlStringEncoderConfig;
import jakarta.inject.Inject;

@LogicForConfig(UrlStringEncoderConfig.class)
public final class UrlStringEncoder implements StringEncoder {
   private final UrlStringEncoderConfig config;

   @Inject
   public UrlStringEncoder(UrlStringEncoderConfig config) {
      this.config = config;
   }

   @Override
   public String encodeString(String input) {
      return UrlUtils.urlEncodeCookie(input, this.config.getEncodingScheme());
   }
}
