- add: Character service can now actually create a character correctly in the database
- add: character db client to allow the character service to talk to the database service - update: character.proto to make character data shared
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
use crate::char::character_service_client::CharacterServiceClient;
|
||||
use crate::char::{GetCharacterRequest, GetCharacterListRequest, GetCharacterListResponse, Character, EquippedItem, DeleteCharacterRequest, Empty};
|
||||
use crate::character::character_service_client::CharacterServiceClient;
|
||||
use crate::character::{CreateCharacterRequest, CreateCharacterResponse, DeleteCharacterRequest, DeleteCharacterResponse, Empty, GetCharacterListRequest, GetCharacterListResponse, GetCharacterRequest};
|
||||
use tonic::transport::Channel;
|
||||
use utils::null_string::NullTerminatedString;
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct CharacterClient {
|
||||
@@ -22,16 +23,21 @@ impl CharacterClient {
|
||||
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 {
|
||||
pub async fn create_character(&mut self, user_id: &str, name: NullTerminatedString, race: u8, face: u8, hair: u8, stone: u8) -> Result<CreateCharacterResponse, Box<dyn std::error::Error + Send + Sync>> {
|
||||
let request = CreateCharacterRequest {
|
||||
user_id: user_id.to_string(),
|
||||
name: name.0,
|
||||
race: race as i32,
|
||||
face: face as i32,
|
||||
hair: hair as i32,
|
||||
stone: stone as i32,
|
||||
};
|
||||
|
||||
let response = self.client.get_character_list(request).await?;
|
||||
let response = self.client.create_character(request).await?;
|
||||
Ok(response.into_inner())
|
||||
}
|
||||
|
||||
pub async fn delete_character(&mut self, user_id: &str, char_id: &str) -> Result<Empty, Box<dyn std::error::Error + Send + Sync>> {
|
||||
pub async fn delete_character(&mut self, user_id: &str, char_id: &str) -> Result<DeleteCharacterResponse, Box<dyn std::error::Error + Send + Sync>> {
|
||||
let request = DeleteCharacterRequest {
|
||||
user_id: user_id.to_string(),
|
||||
char_id: char_id.to_string(),
|
||||
|
||||
Reference in New Issue
Block a user