rbx_asset: cloud: implement new asset-delivery-api
This commit is contained in:
parent
71cae5c089
commit
302603998e
@ -407,6 +407,36 @@ 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(&self,config:GetAssetLatestRequest)->Result<Vec<u8>,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)?;
|
||||||
|
|
||||||
|
let body=crate::response_ok(
|
||||||
|
self.get(url).await.map_err(GetError::Reqwest)?
|
||||||
|
).await.map_err(GetError::Response)?
|
||||||
|
.bytes().await.map_err(GetError::Reqwest)?;
|
||||||
|
|
||||||
|
match maybe_gzip_decode(&mut std::io::Cursor::new(body)){
|
||||||
|
Ok(ReaderType::GZip(readable))=>read_readable(readable),
|
||||||
|
Ok(ReaderType::Raw(readable))=>read_readable(readable),
|
||||||
|
Err(e)=>Err(e),
|
||||||
|
}.map_err(GetError::IO)
|
||||||
|
}
|
||||||
|
pub async fn get_asset_version(&self,config:GetAssetVersionRequest)->Result<Vec<u8>,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)?;
|
||||||
|
|
||||||
|
let body=crate::response_ok(
|
||||||
|
self.get(url).await.map_err(GetError::Reqwest)?
|
||||||
|
).await.map_err(GetError::Response)?
|
||||||
|
.bytes().await.map_err(GetError::Reqwest)?;
|
||||||
|
|
||||||
|
match maybe_gzip_decode(&mut std::io::Cursor::new(body)){
|
||||||
|
Ok(ReaderType::GZip(readable))=>read_readable(readable),
|
||||||
|
Ok(ReaderType::Raw(readable))=>read_readable(readable),
|
||||||
|
Err(e)=>Err(e),
|
||||||
|
}.map_err(GetError::IO)
|
||||||
|
}
|
||||||
pub async fn get_asset_versions(&self,config:AssetVersionsRequest)->Result<AssetVersionsResponse,AssetVersionsError>{
|
pub async fn get_asset_versions(&self,config:AssetVersionsRequest)->Result<AssetVersionsResponse,AssetVersionsError>{
|
||||||
let raw_url=format!("https://apis.roblox.com/assets/v1/assets/{}/versions",config.asset_id);
|
let raw_url=format!("https://apis.roblox.com/assets/v1/assets/{}/versions",config.asset_id);
|
||||||
let url=reqwest::Url::parse(raw_url.as_str()).map_err(AssetVersionsError::ParseError)?;
|
let url=reqwest::Url::parse(raw_url.as_str()).map_err(AssetVersionsError::ParseError)?;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user