Added SaveCharacter and UpdateSession function stubs
Updated proto message type names to better match usage Fixed compile errors due to type name changes
This commit is contained in:
@@ -14,6 +14,7 @@ fn main() {
|
||||
tonic_build::configure()
|
||||
.build_server(false) // Generate gRPC client code
|
||||
.compile_well_known_types(true)
|
||||
.type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]")
|
||||
.compile_protos(
|
||||
&["../proto/character_db_api.proto", "../proto/auth.proto"],
|
||||
&["../proto"],
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
use crate::database::{
|
||||
character_db_service_client::CharacterDbServiceClient, Character, CharacterListRequest, CharacterListResponse,
|
||||
character_db_service_client::CharacterDbServiceClient, CharacterItem, CharacterListRequest, CharacterListResponse,
|
||||
CharacterRequest, CreateCharacterRequest, CreateCharacterResponse, DeleteCharacterRequest, DeleteCharacterResponse,
|
||||
};
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use tonic::transport::Channel;
|
||||
use crate::character_service::character_common::{Item, ItemHeader};
|
||||
use crate::character_common::{Item, ItemHeader};
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct CharacterDbClient {
|
||||
@@ -17,21 +17,6 @@ struct Skill {
|
||||
id: i32,
|
||||
}
|
||||
|
||||
// #[derive(Debug, Deserialize, Serialize)]
|
||||
// struct Item {
|
||||
// item_id: i32,
|
||||
// item_type: i32,
|
||||
// is_created: i32,
|
||||
// gem_option: i32,
|
||||
// durability: f32,
|
||||
// life: f32,
|
||||
// socket: i8,
|
||||
// is_appraised: i8,
|
||||
// grade: u32,
|
||||
// count: i32,
|
||||
// slot: i32,
|
||||
// }
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
struct Looks {
|
||||
race: i32,
|
||||
@@ -84,7 +69,7 @@ impl CharacterDbClient {
|
||||
&mut self,
|
||||
user_id: &str,
|
||||
char_id: &str,
|
||||
) -> Result<Character, Box<dyn std::error::Error>> {
|
||||
) -> Result<CharacterItem, Box<dyn std::error::Error>> {
|
||||
let request = tonic::Request::new(CharacterRequest {
|
||||
user_id: user_id.parse().unwrap(),
|
||||
character_id: char_id.parse().unwrap(),
|
||||
|
||||
@@ -1,21 +1,11 @@
|
||||
use crate::character_db_client::CharacterDbClient;
|
||||
use crate::character_service::character::character_service_server::CharacterService;
|
||||
use crate::character_service::character::{
|
||||
CreateCharacterRequest, CreateCharacterResponse, DeleteCharacterRequest, DeleteCharacterResponse,
|
||||
GetCharacterListRequest, GetCharacterListResponse, GetCharacterRequest, GetCharacterResponse,
|
||||
};
|
||||
use crate::character_service::character_common::{Character, CharacterFull};
|
||||
use crate::character::character_service_server::CharacterService;
|
||||
use crate::character::{CreateCharacterRequest, CreateCharacterResponse, DeleteCharacterRequest, DeleteCharacterResponse, GetCharacterListRequest, GetCharacterListResponse, GetCharacterRequest, GetCharacterResponse, SaveCharacterRequest, SaveCharacterResponse};
|
||||
use crate::character_common::{Character, CharacterFull, EquippedItem, Item, ItemHeader};
|
||||
use std::sync::Arc;
|
||||
use tonic::{Request, Response, Status};
|
||||
use tracing::debug;
|
||||
|
||||
pub mod character_common {
|
||||
tonic::include_proto!("character_common");
|
||||
}
|
||||
pub mod character {
|
||||
tonic::include_proto!("character");
|
||||
}
|
||||
|
||||
pub struct MyCharacterService {
|
||||
pub character_db_client: Arc<CharacterDbClient>,
|
||||
}
|
||||
@@ -42,11 +32,11 @@ impl CharacterService for MyCharacterService {
|
||||
|
||||
let mut characters: Vec<Character> = vec![];
|
||||
for character in character_list.characters {
|
||||
let mut equipped_items: Vec<character_common::EquippedItem> = vec![];
|
||||
let inventory: Vec<character_common::Item> = serde_json::from_str(&character.inventory).unwrap();
|
||||
let mut equipped_items: Vec<EquippedItem> = vec![];
|
||||
let inventory: Vec<Item> = serde_json::from_str(&character.inventory).unwrap();
|
||||
for item in inventory {
|
||||
if item.slot < 12 {
|
||||
equipped_items.push(character_common::EquippedItem {
|
||||
equipped_items.push(EquippedItem {
|
||||
item_id: item.header.unwrap().id,
|
||||
socket: item.socket,
|
||||
grade: item.grade,
|
||||
@@ -142,4 +132,8 @@ impl CharacterService for MyCharacterService {
|
||||
};
|
||||
Ok(Response::new(response))
|
||||
}
|
||||
|
||||
async fn save_character(&self, request: Request<SaveCharacterRequest>) -> Result<Response<SaveCharacterResponse>, Status> {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
pub mod character_db_client;
|
||||
pub mod character_service;
|
||||
pub mod database;
|
||||
@@ -4,8 +4,20 @@ pub mod database {
|
||||
tonic::include_proto!("character_db_api");
|
||||
}
|
||||
|
||||
pub mod common {
|
||||
tonic::include_proto!("common");
|
||||
}
|
||||
|
||||
pub mod character {
|
||||
tonic::include_proto!("character");
|
||||
}
|
||||
|
||||
pub mod character_common {
|
||||
tonic::include_proto!("character_common");
|
||||
}
|
||||
|
||||
use crate::character_db_client::CharacterDbClient;
|
||||
use crate::character_service::character::character_service_server::CharacterServiceServer;
|
||||
use crate::character::character_service_server::CharacterServiceServer;
|
||||
use crate::character_service::MyCharacterService;
|
||||
use dotenv::dotenv;
|
||||
use std::env;
|
||||
|
||||
Reference in New Issue
Block a user