package com.airlock.iam.common.infrastructure.jackson;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import jakarta.ws.rs.core.Link;
import jakarta.ws.rs.core.Link.Builder;
import java.io.IOException;

public class LinkDeserializer extends StdDeserializer<Link> {
   protected LinkDeserializer() {
      super(Link.class);
   }

   public Link deserialize(JsonParser jp, DeserializationContext context) throws IOException, JsonProcessingException {
      JsonNode object = (JsonNode)jp.getCodec().readTree(jp);
      String href = object.asText();
      Builder uriBuilder = Link.fromUri(href);
      return uriBuilder.build(new Object[0]);
   }
}
