22use tonic:: { Request , Response , Status } ;
33
44use crate :: {
5- application:: use_cases:: misc_use_case:: MiscUseCase ,
6- infra:: grpc:: misc:: {
7- misc_server:: Misc , HealthCheckRequest , HealthCheckResponse , SetupRequest , SetupResponse ,
8- } ,
5+ application:: use_cases:: misc_use_case:: MiscUseCase , domain:: models:: admin_user:: StorableAdminUser , infra:: grpc:: misc:: {
6+ HealthCheckRequest , HealthCheckResponse , SetupRequest , SetupResponse , misc_server:: Misc
7+ }
98} ;
109
1110
@@ -32,19 +31,33 @@ impl Misc for MiscGrpcApi {
3231 ) -> Result < Response < HealthCheckResponse > , Status > {
3332 println ! ( "Got a request: {:?}" , request) ;
3433
35- let request = HealthCheckResponse { status : true } ;
34+ let response = HealthCheckResponse { status : true } ;
3635
37- Ok ( Response :: new ( request ) )
36+ Ok ( Response :: new ( response ) )
3837 }
3938
4039 async fn setup (
4140 & self ,
4241 request : Request < SetupRequest > ,
4342 ) -> Result < Response < SetupResponse > , Status > {
44- println ! ( "Got a setup request: {:?}" , request) ;
43+ let request = request. into_inner ( ) ;
44+
45+ // validate the request and convert it to a storable admin user
46+
47+ let mut storable_admin_user: StorableAdminUser = match request. try_into ( ) {
48+ Ok ( req) => req,
49+ Err ( e) => return Err ( Status :: invalid_argument ( e. to_string ( ) ) ) ,
50+ } ;
51+
52+ storable_admin_user. logged_in_user = "ApplicationSetupProcess" . to_string ( ) ;
53+ storable_admin_user. is_super_admin = true ;
54+
55+ // @todo hash the password
56+
57+ println ! ( "Got a setup request: {:?}" , storable_admin_user) ;
4558
4659 // Think of implementing a generic result handler
47- let setup_result = match self . misc_use_case . setup ( ) . await {
60+ let setup_result = match self . misc_use_case . setup ( storable_admin_user ) . await {
4861 Ok ( result) => result,
4962 Err ( e) => return Err ( Status :: internal ( e. to_string ( ) ) ) ,
5063 } ;
0 commit comments