File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -136,6 +136,28 @@ impl From<tokio_postgres::error::Error> for Error {
136136
137137 builder. build ( )
138138 }
139+ Some ( code) if code == "28000" => {
140+ let code = code. to_string ( ) ;
141+ let db_error = e. into_source ( ) . and_then ( |e| e. downcast :: < DbError > ( ) . ok ( ) ) ;
142+ let message = db_error. as_ref ( ) . map ( |e| e. message ( ) ) ;
143+
144+ let db_name = message
145+ . as_ref ( )
146+ . and_then ( |m| m. split_whitespace ( ) . nth ( 5 ) )
147+ . and_then ( |s| s. split ( '"' ) . nth ( 1 ) )
148+ . into ( ) ;
149+
150+ let kind = ErrorKind :: DatabaseAccessDenied { db_name } ;
151+ let mut builder = Error :: builder ( kind) ;
152+
153+ builder. set_original_code ( code) ;
154+
155+ if let Some ( message) = message {
156+ builder. set_original_message ( message) ;
157+ }
158+
159+ builder. build ( )
160+ }
139161 Some ( code) if code == "28P01" => {
140162 let code = code. to_string ( ) ;
141163 let db_error = e. into_source ( ) . and_then ( |e| e. downcast :: < DbError > ( ) . ok ( ) ) ;
You can’t perform that action at this time.
0 commit comments