diff --git a/packet-service/build.rs b/packet-service/build.rs index 4123838..af2fd65 100644 --- a/packet-service/build.rs +++ b/packet-service/build.rs @@ -1,9 +1,9 @@ fn main() { // gRPC Client code tonic_build::configure() - .build_server(false) // Generate gRPC client code + .build_server(false) // Generate gRPC server code? .compile_well_known_types(true) .type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]") - .compile_protos(&["../proto/auth.proto"], &["../proto"]) + .compile_protos(&["../proto/auth.proto", "../proto/character.proto"], &["../proto"]) .unwrap_or_else(|e| panic!("Failed to compile protos {:?}", e)); } diff --git a/packet-service/src/handlers/character.rs b/packet-service/src/handlers/character.rs index 789e3e0..eefe14a 100644 --- a/packet-service/src/handlers/character.rs +++ b/packet-service/src/handlers/character.rs @@ -26,11 +26,13 @@ pub(crate) async fn handle_char_list_req(stream: &mut TcpStream, packet: Packet, debug!("{:?}", request); let mut user_id = 0; + let session_id; if let Some(mut state) = connection_service.get_connection(&connection_id) { - user_id = state.user_id.expect("Missing user id in connection"); + user_id = state.user_id.expect("Missing user id in connection state"); + session_id = state.session_id.expect("Missing session id in connection state"); } - // query the database for the character to this user + // query the character service for the character list for this user let data = SrvCharListReply { characters: vec![] }; let response_packet = Packet::new(PacketType::PakccCharListReply, &data)?; @@ -43,10 +45,12 @@ pub(crate) async fn handle_create_char_req(stream: &mut TcpStream, packet: Packe let request = CliCreateCharReq::decode(packet.payload.as_slice())?; debug!("{:?}", request); - // if let Some(mut state) = connection_service.get_connection(&connection_id) { - // // state.user_id = Some(response.user_id.parse().unwrap()); - // // state.session_id = Some(response.session_id); - // } + let session_id; + if let Some(mut state) = connection_service.get_connection(&connection_id) { + session_id = state.session_id.expect("Missing session id in connection state"); + } + + // send the data to the character service to create the character let data = SrvCreateCharReply { result: srv_create_char_reply::Result::Ok, platininum: 0 }; let response_packet = Packet::new(PacketType::PakccCreateCharReply, &data)?; @@ -59,10 +63,12 @@ pub(crate) async fn handle_delete_char_req(stream: &mut TcpStream, packet: Packe let request = CliDeleteCharReq::decode(packet.payload.as_slice())?; debug!("{:?}", request); + let session_id; if let Some(mut state) = connection_service.get_connection(&connection_id) { - // state.user_id = Some(response.user_id.parse().unwrap()); - // state.session_id = Some(response.session_id); + session_id = state.session_id.expect("Missing session id in connection state"); } + + // character_client.set_delete_character(request.is_delete, request.char_id, request.name); let character_name = request.name; let data = SrvDeleteCharReply { remaining_time: 0, name: character_name }; @@ -77,8 +83,6 @@ pub(crate) async fn handle_select_char_req(stream: &mut TcpStream, packet: Packe debug!("{:?}", request); if let Some(mut state) = connection_service.get_connection_mut(&connection_id) { - // state.user_id = Some(response.user_id.parse().unwrap()); - // state.session_id = Some(response.session_id); state.character_id = Some(request.char_id as i8); }