- 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:
2025-01-07 13:41:07 -05:00
parent c6c502fd8a
commit cb6ee657f0
13 changed files with 318 additions and 72 deletions

View File

@@ -1,4 +1,4 @@
use crate::grpc::{Character, CharacterRequest, CharacterListRequest, CharacterListResponse, CreateCharacterRequest, CreateCharacterResponse, DeleteCharacterRequest, Empty};
use crate::grpc::{Character, CharacterRequest, CharacterListRequest, CharacterListResponse, CreateCharacterRequest, CreateCharacterResponse, DeleteCharacterRequest, DeleteCharacterResponse, Empty};
use crate::grpc::character_service_server::CharacterService;
use crate::grpc::database_service::MyDatabaseService;
use tonic::{Request, Response, Status};
@@ -101,6 +101,7 @@ impl CharacterService for MyDatabaseService {
.map_err(|_| Status::not_found("Character not found"))?;
let response = CreateCharacterResponse {
result: 0,
character_id: character.id,
};
@@ -110,7 +111,7 @@ impl CharacterService for MyDatabaseService {
async fn delete_character(
&self,
request: Request<DeleteCharacterRequest>,
) -> Result<Response<Empty>, Status> {
) -> Result<Response<DeleteCharacterResponse>, Status> {
let req = request.into_inner();
let repo = &self.db.character_repo;
@@ -118,6 +119,10 @@ impl CharacterService for MyDatabaseService {
.await
.map_err(|_| Status::internal("Failed to delete character"))?;
Ok(Response::new(Empty {}))
let response = DeleteCharacterResponse {
remaining_time: 0,
name: "".to_string(),
};
Ok(Response::new(response))
}
}