rbx_asset: change api for asset location again
This commit is contained in:
parent
45c1e52c0f
commit
e40041a894
@ -178,22 +178,28 @@ impl std::fmt::Display for GetError{
|
||||
}
|
||||
impl std::error::Error for GetError{}
|
||||
|
||||
#[derive(Debug,serde::Deserialize,serde::Serialize)]
|
||||
pub struct AssetLocation(
|
||||
// the location is private so users cannot mutate it
|
||||
String
|
||||
);
|
||||
impl AssetLocation{
|
||||
pub fn location(&self)->&str{
|
||||
let Self(location)=self;
|
||||
location
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug,serde::Deserialize)]
|
||||
#[allow(nonstandard_style,dead_code)]
|
||||
pub struct AssetLocation{
|
||||
// this field is private so users cannot mutate it
|
||||
location:String,
|
||||
pub struct AssetLocationInfo{
|
||||
pub location:Option<AssetLocation>,
|
||||
pub requestId:String,
|
||||
pub IsHashDynamic:bool,
|
||||
pub IsCopyrightProtected:bool,
|
||||
pub isArchived:bool,
|
||||
pub assetTypeId:u32,
|
||||
}
|
||||
impl AssetLocation{
|
||||
pub fn location(&self)->&str{
|
||||
&self.location
|
||||
}
|
||||
}
|
||||
|
||||
pub struct AssetVersionsRequest{
|
||||
pub asset_id:u64,
|
||||
@ -424,7 +430,7 @@ impl Context{
|
||||
).await.map_err(GetError::Response)?
|
||||
.json::<AssetResponse>().await.map_err(GetError::Reqwest)
|
||||
}
|
||||
pub async fn get_asset_location(&self,config:GetAssetLatestRequest)->Result<AssetLocation,GetError>{
|
||||
pub async fn get_asset_location(&self,config:GetAssetLatestRequest)->Result<AssetLocationInfo,GetError>{
|
||||
let raw_url=format!("https://apis.roblox.com/asset-delivery-api/v1/assetId/{}",config.asset_id);
|
||||
let url=reqwest::Url::parse(raw_url.as_str()).map_err(GetError::ParseError)?;
|
||||
|
||||
@ -433,7 +439,7 @@ impl Context{
|
||||
).await.map_err(GetError::Response)?
|
||||
.json().await.map_err(GetError::Reqwest)
|
||||
}
|
||||
pub async fn get_asset_version_location(&self,config:GetAssetVersionRequest)->Result<AssetLocation,GetError>{
|
||||
pub async fn get_asset_version_location(&self,config:GetAssetVersionRequest)->Result<AssetLocationInfo,GetError>{
|
||||
let raw_url=format!("https://apis.roblox.com/asset-delivery-api/v1/assetId/{}/version/{}",config.asset_id,config.version);
|
||||
let url=reqwest::Url::parse(raw_url.as_str()).map_err(GetError::ParseError)?;
|
||||
|
||||
@ -443,7 +449,7 @@ impl Context{
|
||||
.json().await.map_err(GetError::Reqwest)
|
||||
}
|
||||
pub async fn get_asset(&self,config:&AssetLocation)->Result<Vec<u8>,GetError>{
|
||||
let url=reqwest::Url::parse(config.location.as_str()).map_err(GetError::ParseError)?;
|
||||
let url=reqwest::Url::parse(config.location()).map_err(GetError::ParseError)?;
|
||||
|
||||
let body=crate::response_ok(
|
||||
self.get(url).await.map_err(GetError::Reqwest)?
|
||||
|
Loading…
x
Reference in New Issue
Block a user