- add: character service grpc server impl for getting the character list

This commit is contained in:
2024-12-27 18:58:45 -05:00
parent bdc2384f12
commit f99fda9e1a
2 changed files with 66 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
use tracing::debug;
use tonic::{Request, Response, Status};
use tracing::field::debug;
use crate::character_service::character::character_service_server::CharacterService;
use crate::character_service::character::{Character, GetCharacterListRequest, GetCharacterListResponse};
pub mod character {
tonic::include_proto!("character");
}
#[derive(Default)]
pub struct MyCharacterService {}
#[tonic::async_trait]
impl CharacterService for MyCharacterService {
async fn get_character_list(&self, request: Request<GetCharacterListRequest>) -> Result<Response<GetCharacterListResponse>, Status> {
let req = request.into_inner();
let user_id = req.user_id;
debug!("Character list for User ID: {}", user_id);
// Simulated database fetch for characters
let characters = vec![
Character {
character_id: "1".to_string(),
name: "Warrior123".to_string(),
level: 1,
race: 1,
job: 111,
last_played: 1633017600, // Example timestamp
delete_time: 0,
face: 0,
hair: 0,
items: vec![],
},
Character {
character_id: "2".to_string(),
name: "Mage123".to_string(),
level: 20,
race: 0,
job: 211,
last_played: 1633017600, // Example timestamp
delete_time: 0,
face: 0,
hair: 0,
items: vec![],
},
];
let response = GetCharacterListResponse { characters };
Ok(Response::new(response))
}
}