- 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:
51
packet-service/src/character_client.rs
Normal file
51
packet-service/src/character_client.rs
Normal 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())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user