use crate::WyrdClient;
use wyrd_spec::envelope::CardKind;
use wyrd_spec::ids::{CardName, SpaceName};
use wyrd_spec::reference::CardRef;
use wyrd_spec::registry::GetCardResponse;
use super::card_ref_from_card;
use crate::cards::error::RegistryEngineError;
pub(crate) async fn resolve_latest(
client: &WyrdClient,
kind: CardKind,
space: SpaceName,
name: CardName,
) -> Result<CardRef, RegistryEngineError> {
let path = format!(
"/v1/cards/{}/{}/{}/latest",
urlencoding::encode(kind.wire_name()),
urlencoding::encode(space.as_str()),
urlencoding::encode(name.as_str()),
);
let response: GetCardResponse = client
.http
.request_json(reqwest::Method::GET, &path, None::<&()>)
.await?;
card_ref_from_card(&response.card)
}