package com.airlock.iam.common.infrastructure.state.redis;

import com.airlock.iam.base.api.domain.model.exception.FailureException;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;

public final class LuaScriptReader {
   public static String readLuaScript(String scriptFile) {
      try (InputStream inputStream = RedisStateRepository.class.getResourceAsStream(scriptFile)) {
         if (inputStream == null) {
            throw new FailureException("Cannot find redis script %s".formatted(scriptFile));
         } else {
            return new String(inputStream.readAllBytes(), StandardCharsets.UTF_8);
         }
      } catch (IOException e) {
         throw new FailureException(e);
      }
   }

   public static String readLuaScript(String scriptFile, String fragment) {
      return fragment + "\n" + readLuaScript(scriptFile);
   }

   private LuaScriptReader() {
   }
}
