package spoonaccular;

import com.fasterxml.jackson.databind.ObjectMapper;
import io.github.cdimascio.dotenv.Dotenv;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import spoonaccular.models.amount_conversion.ConvertedAmount;

import java.io.IOException;

public class AmountConversion {

    private static final OkHttpClient client =  new OkHttpClient();
    private static final Dotenv dotenv = Dotenv.configure().ignoreIfMissing().ignoreIfMalformed().load();

    private AmountConversion(){
    }

    public static double convertAmount(String ingrdientName, Double sourceAmount, String sourceUnit, String targetUnit) throws IOException {
        Request request = APIAuthentication.addAuthHeaders(
                new Request.Builder()
                        .url("https://" + dotenv.get("X-RapidAPI-Host") +
                        "/recipes/convert?ingredientName=" + ingrdientName +
                        "&targetUnit=" + targetUnit +
                        "&sourceUnit=" + sourceUnit +
                        "&sourceAmount=" + sourceAmount)
        ).build();
        Response response = client.newCall(request).execute();
        String responseString = response.body().string();
        try {
            return new ObjectMapper().readValue(responseString, ConvertedAmount.class).getTargetAmount();
        } catch (Exception e){
            return 0;
        }

    }

}
