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{}
|
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)]
|
#[derive(Debug,serde::Deserialize)]
|
||||||
#[allow(nonstandard_style,dead_code)]
|
#[allow(nonstandard_style,dead_code)]
|
||||||
pub struct AssetLocation{
|
pub struct AssetLocationInfo{
|
||||||
// this field is private so users cannot mutate it
|
pub location:Option<AssetLocation>,
|
||||||
location:String,
|
|
||||||
pub requestId:String,
|
pub requestId:String,
|
||||||
pub IsHashDynamic:bool,
|
pub IsHashDynamic:bool,
|
||||||
pub IsCopyrightProtected:bool,
|
pub IsCopyrightProtected:bool,
|
||||||
pub isArchived:bool,
|
pub isArchived:bool,
|
||||||
pub assetTypeId:u32,
|
pub assetTypeId:u32,
|
||||||
}
|
}
|
||||||
impl AssetLocation{
|
|
||||||
pub fn location(&self)->&str{
|
|
||||||
&self.location
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct AssetVersionsRequest{
|
pub struct AssetVersionsRequest{
|
||||||
pub asset_id:u64,
|
pub asset_id:u64,
|
||||||
@ -424,7 +430,7 @@ impl Context{
|
|||||||
).await.map_err(GetError::Response)?
|
).await.map_err(GetError::Response)?
|
||||||
.json::<AssetResponse>().await.map_err(GetError::Reqwest)
|
.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 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)?;
|
let url=reqwest::Url::parse(raw_url.as_str()).map_err(GetError::ParseError)?;
|
||||||
|
|
||||||
@ -433,7 +439,7 @@ impl Context{
|
|||||||
).await.map_err(GetError::Response)?
|
).await.map_err(GetError::Response)?
|
||||||
.json().await.map_err(GetError::Reqwest)
|
.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 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)?;
|
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)
|
.json().await.map_err(GetError::Reqwest)
|
||||||
}
|
}
|
||||||
pub async fn get_asset(&self,config:&AssetLocation)->Result<Vec<u8>,GetError>{
|
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(
|
let body=crate::response_ok(
|
||||||
self.get(url).await.map_err(GetError::Reqwest)?
|
self.get(url).await.map_err(GetError::Reqwest)?
|
||||||
|
Loading…
x
Reference in New Issue
Block a user