diff options
| author | mo khan <mo@mokhan.ca> | 2025-06-18 15:59:28 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-06-18 15:59:28 -0600 |
| commit | 4a9127d92cccae553c937a9615e255662d711761 (patch) | |
| tree | 5bf8de48963c21b26b49bb6f469520584f948f43 /src/server.rs | |
| parent | cc238917b7e0267653455fab1f144ef2553c021c (diff) | |
feat: add ability rpc endpoint
Diffstat (limited to 'src/server.rs')
| -rw-r--r-- | src/server.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/server.rs b/src/server.rs index d6a8bca..b52c56f 100644 --- a/src/server.rs +++ b/src/server.rs @@ -3,6 +3,29 @@ use tonic::{Request, Response, Status, transport::Server}; use hello_world::greeter_server::{Greeter, GreeterServer}; use hello_world::{HelloReply, HelloRequest}; +use authz_rpc::ability_server::{Ability, AbilityServer}; +use authz_rpc::{AllowReply, AllowRequest}; + +pub mod authz_rpc { + tonic::include_proto!("authz.rpc"); +} + +#[derive(Debug, Default)] +pub struct MyAbility {} + +#[tonic::async_trait] +impl Ability for MyAbility { + async fn allowed( + &self, + request: Request<AllowRequest>, + ) -> Result<Response<AllowReply>, Status> { + println!("Got a request: {:?}", request); + + let reply = AllowReply { result: true }; + Ok(Response::new(reply)) + } +} + pub mod hello_world { tonic::include_proto!("helloworld"); } @@ -29,10 +52,12 @@ impl Greeter for MyGreeter { #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let addr = "[::1]:50051".parse()?; + let ability = MyAbility::default(); let greeter = MyGreeter::default(); Server::builder() .add_service(GreeterServer::new(greeter)) + .add_service(AbilityServer::new(ability)) .serve(addr) .await?; |
