@@ -16,6 +16,7 @@ pub struct ChargerInfo {
1616 pub name : Option < String > ,
1717 pub configured_port : i32 ,
1818 pub connected : bool ,
19+ pub firmware_version : String ,
1920}
2021
2122#[ derive( Serialize , Deserialize , ToSchema ) ]
@@ -58,15 +59,15 @@ pub async fn charger_info(
5859 . await ?;
5960
6061 let mut conn = get_connection ( & state) ?;
61- let port: i32 = web_block_unpacked ( move || {
62+ let ( port, firmware_version ) = web_block_unpacked ( move || {
6263 use db_connector:: schema:: chargers:: dsl:: * ;
6364
6465 match chargers
6566 . filter ( id. eq ( charger_id) )
66- . select ( webinterface_port)
67+ . select ( ( webinterface_port, firmware_version ) )
6768 . get_result ( & mut conn)
6869 {
69- Ok ( port) => Ok ( port) ,
70+ Ok ( ( port, version ) ) => Ok ( ( port, version ) ) ,
7071 Err ( _) => Err ( Error :: InternalError ) ,
7172 }
7273 } )
@@ -80,6 +81,7 @@ pub async fn charger_info(
8081 name : charger. name ,
8182 configured_port : port,
8283 connected,
84+ firmware_version : firmware_version,
8385 } ;
8486
8587 Ok ( HttpResponse :: Ok ( ) . json ( info) )
@@ -154,10 +156,20 @@ mod tests {
154156 . get_result ( & mut conn)
155157 . unwrap ( )
156158 } ;
159+ let version: String = {
160+ use db_connector:: schema:: chargers:: dsl:: * ;
161+
162+ chargers
163+ . filter ( id. eq ( uuid:: Uuid :: from_str ( & charger. uuid ) . unwrap ( ) ) )
164+ . select ( firmware_version)
165+ . get_result ( & mut conn)
166+ . unwrap ( )
167+ } ;
157168
158169 assert_eq ! ( body. id, charger. uuid) ;
159170 assert_eq ! ( body. name, name) ;
160- assert_eq ! ( body. configured_port, port)
171+ assert_eq ! ( body. configured_port, port) ;
172+ assert_eq ! ( body. firmware_version, version) ;
161173 }
162174
163175 #[ actix:: test]
0 commit comments