- update: packet router to have the various services needed for the packets to be local to it.

- add: character service grpc client calls
This commit is contained in:
2025-01-04 17:45:54 -05:00
parent 00468e9600
commit 4a826d2a46
7 changed files with 189 additions and 78 deletions

View File

@@ -0,0 +1,51 @@
use crate::char::character_service_client::CharacterServiceClient;
use crate::char::{GetCharacterListRequest, GetCharacterListResponse, Character, EquippedItem};
use tonic::transport::Channel;
#[derive(Clone, Debug)]
pub struct CharacterClient {
client: CharacterServiceClient<Channel>,
}
impl CharacterClient {
pub async fn connect(endpoint: &str) -> Result<Self, Box<dyn std::error::Error>> {
let client = CharacterServiceClient::connect(endpoint.to_string()).await?;
Ok(CharacterClient { client })
}
pub async fn get_character_list(&mut self, user_id: &str) -> Result<GetCharacterListResponse, Box<dyn std::error::Error + Send + Sync>> {
let request = GetCharacterListRequest {
user_id: user_id.to_string(),
};
let response = self.client.get_character_list(request).await?;
Ok(response.into_inner())
}
pub async fn create_character(&mut self, user_id: &str) -> Result<GetCharacterListResponse, Box<dyn std::error::Error + Send + Sync>> {
let request = GetCharacterListRequest {
user_id: user_id.to_string(),
};
let response = self.client.get_character_list(request).await?;
Ok(response.into_inner())
}
pub async fn delete_character(&mut self, user_id: &str) -> Result<GetCharacterListResponse, Box<dyn std::error::Error + Send + Sync>> {
let request = GetCharacterListRequest {
user_id: user_id.to_string(),
};
let response = self.client.get_character_list(request).await?;
Ok(response.into_inner())
}
pub async fn get_character(&mut self, char_id: u8) -> Result<GetCharacterListResponse, Box<dyn std::error::Error + Send + Sync>> {
let request = GetCharacterListRequest {
user_id: char_id.to_string(),
};
let response = self.client.get_character_list(request).await?;
Ok(response.into_inner())
}
}