mirror of
https://github.com/nab138/isideload.git
synced 2026-03-02 22:46:15 +01:00
Properly impliment list teams and fix cert on windows
This commit is contained in:
@@ -37,4 +37,4 @@ pbkdf2 = "0.12.2"
|
||||
hmac = "0.12.1"
|
||||
cbc = { version = "0.1.2", features = ["std"] }
|
||||
aes = "0.8.4"
|
||||
aes-gcm = "0.10.3"
|
||||
aes-gcm = "0.10.3"
|
||||
@@ -1,6 +1,7 @@
|
||||
use plist::Dictionary;
|
||||
use plist_macro::plist;
|
||||
use rootcause::prelude::*;
|
||||
use tracing::debug;
|
||||
use uuid::Uuid;
|
||||
|
||||
use crate::{
|
||||
@@ -9,7 +10,10 @@ use crate::{
|
||||
apple_account::{AppToken, AppleAccount},
|
||||
grandslam::GrandSlam,
|
||||
},
|
||||
dev::device_type::DeveloperDeviceType,
|
||||
dev::{
|
||||
device_type::DeveloperDeviceType,
|
||||
structures::{DeveloperTeam, ListTeamResponse},
|
||||
},
|
||||
util::plist::{PlistDataExtract, plist_to_xml_string},
|
||||
};
|
||||
|
||||
@@ -58,7 +62,7 @@ impl<'a> DeveloperSession<'a> {
|
||||
&self,
|
||||
url: &str,
|
||||
body: Option<Dictionary>,
|
||||
) -> Result<Dictionary, Report> {
|
||||
) -> Result<String, Report> {
|
||||
let body = body.unwrap_or_else(|| Dictionary::new());
|
||||
|
||||
let base = plist!(dict {
|
||||
@@ -85,14 +89,22 @@ impl<'a> DeveloperSession<'a> {
|
||||
.await
|
||||
.context("Failed to read developer request response text")?;
|
||||
|
||||
let dict: Dictionary = plist::from_bytes(text.as_bytes())
|
||||
.context("Failed to parse developer request plist")?;
|
||||
// let dict: Dictionary = plist::from_bytes(text.as_bytes())
|
||||
// .context("Failed to parse developer request plist")?;
|
||||
|
||||
Ok(dict)
|
||||
Ok(text)
|
||||
}
|
||||
|
||||
pub async fn list_teams(&self) -> Result<Dictionary, Report> {
|
||||
self.send_developer_request(&DeveloperDeviceType::Any.dev_url("listTeams"), None)
|
||||
.await
|
||||
pub async fn list_teams(&self) -> Result<Vec<DeveloperTeam>, Report> {
|
||||
let res = self
|
||||
.send_developer_request(&DeveloperDeviceType::Any.dev_url("listTeams"), None)
|
||||
.await?;
|
||||
|
||||
let response: ListTeamResponse = plist::from_bytes(res.as_bytes())
|
||||
.context("Failed to parse list teams response plist")?;
|
||||
|
||||
debug!("List Teams Response Code: {:?}", response.result_code);
|
||||
|
||||
Ok(response.teams)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
pub mod developer_session;
|
||||
pub mod device_type;
|
||||
pub mod structures;
|
||||
17
isideload/src/dev/structures.rs
Normal file
17
isideload/src/dev/structures.rs
Normal file
@@ -0,0 +1,17 @@
|
||||
use serde::Deserialize;
|
||||
|
||||
#[derive(Deserialize, Debug, Clone)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct DeveloperTeam {
|
||||
name: String,
|
||||
team_id: String,
|
||||
r#type: String,
|
||||
status: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug, Clone)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct ListTeamResponse {
|
||||
pub teams: Vec<DeveloperTeam>,
|
||||
pub result_code: i64,
|
||||
}
|
||||
Reference in New Issue
Block a user