11use crate :: api:: proto:: entity:: entity_paginate_response:: { EntityPaginateData , EntityPagination } ;
22use crate :: api:: proto:: entity:: entty_service_server:: EnttyService ;
33use crate :: api:: proto:: entity:: {
4- EntityPaginateRequest , EntityPaginateResponse , GetEntityRequest , GetEntityResponse ,
5- StoreEntityRequest , StoreEntityResponse ,
4+ DeleteEntityRequest , DeleteEntityResponse , EntityPaginateRequest , EntityPaginateResponse , GetEntityRequest , GetEntityResponse , PutEntityIdentifierRequest , PutEntityIdentifierResponse , StoreEntityRequest , StoreEntityResponse , UpdateEntityRequest , UpdateEntityResponse
65} ;
76use crate :: avored_state:: AvoRedState ;
87use crate :: error:: Error :: Tonic ;
@@ -115,11 +114,11 @@ impl EnttyService for EntityApi {
115114 . await
116115 {
117116 Ok ( entity_model) => {
118- let get_admin_user_response = GetEntityResponse {
117+ let get_entity_response = GetEntityResponse {
119118 status : true ,
120119 data : Some ( entity_model) ,
121120 } ;
122- let res = Response :: new ( get_admin_user_response ) ;
121+ let res = Response :: new ( get_entity_response ) ;
123122 Ok ( res)
124123 }
125124 Err ( e) => match e {
@@ -128,4 +127,116 @@ impl EnttyService for EntityApi {
128127 } ,
129128 }
130129 }
130+
131+ async fn update_entity (
132+ & self ,
133+ request : Request < UpdateEntityRequest > ,
134+ ) -> Result < Response < UpdateEntityResponse > , Status > {
135+ println ! ( "->> {:<12} - update_entity" , "gRPC_Entity_Service" ) ;
136+
137+ let claims = request. get_token_claim ( ) ?;
138+
139+ let logged_in_user = claims. admin_user_model ;
140+ logged_in_user
141+ . check_user_has_resouce_access (
142+ & self . state . admin_user_service ,
143+ String :: from ( "update_entity" ) ,
144+ )
145+ . await ?;
146+
147+ let req = request. into_inner ( ) ;
148+
149+ match self
150+ . state
151+ . entity_service
152+ . update_entity ( req, logged_in_user. email , & self . state . db )
153+ . await
154+ {
155+ Ok ( entity_response) => {
156+ Ok ( Response :: new ( entity_response) )
157+ }
158+ Err ( e) => match e {
159+ Tonic ( status) => Err ( * status) ,
160+ _ => Err ( Status :: internal ( e. to_string ( ) ) ) ,
161+ } ,
162+ }
163+ }
164+
165+ async fn put_entity_identifier (
166+ & self ,
167+ request : Request < PutEntityIdentifierRequest > ,
168+ ) -> Result < Response < PutEntityIdentifierResponse > , Status > {
169+ println ! (
170+ "->> {:<12} - put_entity_identifier" ,
171+ "gRPC_Entity_Service"
172+ ) ;
173+
174+ let claims = request. get_token_claim ( ) ?;
175+ let logged_in_user = claims. admin_user_model ;
176+ logged_in_user
177+ . check_user_has_resouce_access (
178+ & self . state . admin_user_service ,
179+ String :: from ( "put_entiy_identifier" ) ,
180+ )
181+ . await ?;
182+
183+ let user_locale = logged_in_user. locale . clone ( ) ;
184+ let req = request. into_inner ( ) ;
185+ req. validate ( & self . state , user_locale) . await ?;
186+
187+ match self
188+ . state
189+ . entity_service
190+ . put_entity_identifier ( req, claims. email , & self . state . db )
191+ . await
192+ {
193+ Ok ( reply) => {
194+ let res = Response :: new ( reply) ;
195+
196+ Ok ( res)
197+ }
198+ Err ( e) => match e {
199+ Tonic ( status) => Err ( * status) ,
200+ _ => Err ( Status :: internal ( e. to_string ( ) ) ) ,
201+ } ,
202+ }
203+ }
204+
205+ async fn delete_entity (
206+ & self ,
207+ request : Request < DeleteEntityRequest > ,
208+ ) -> Result < Response < DeleteEntityResponse > , Status > {
209+ println ! ( "->> {:<12} - delete_entity" , "gRPC_entity_Service" ) ;
210+
211+ let claims = request. get_token_claim ( ) ?;
212+ let logged_in_user = claims. admin_user_model ;
213+ logged_in_user
214+ . check_user_has_resouce_access (
215+ & self . state . admin_user_service ,
216+ String :: from ( "delete_entity" ) ,
217+ )
218+ . await ?;
219+
220+ let user_locale = logged_in_user. locale . clone ( ) ;
221+ let req = request. into_inner ( ) ;
222+ req. validate ( user_locale) ?;
223+
224+ match self
225+ . state
226+ . entity_service
227+ . delete_entity ( req, & self . state . db )
228+ . await
229+ {
230+ Ok ( reply) => {
231+ let res = Response :: new ( reply) ;
232+
233+ Ok ( res)
234+ }
235+ Err ( e) => match e {
236+ Tonic ( status) => Err ( * status) ,
237+ _ => Err ( Status :: internal ( e. to_string ( ) ) ) ,
238+ } ,
239+ }
240+ }
241+
131242}
0 commit comments