@@ -2,9 +2,10 @@ use ncurses::*;
22use crate :: ui:: inventory;
33use crate :: ui:: ui_common;
44use serde_json:: { Map , Value } ;
5+ use crate :: api:: APIError ;
56use crate :: api;
67
7- pub fn pick_machine ( api : & mut api:: API ) {
8+ pub fn pick_machine ( api : & mut api:: API ) -> Result < ( ) , Box < dyn std :: error :: Error > > {
89 /* Get the screen bounds. */
910 let mut max_x = 0 ;
1011 let mut max_y = 0 ;
@@ -27,8 +28,14 @@ pub fn pick_machine(api: &mut api::API) {
2728 mvwprintw ( win, 1 , 2 , "SELECT A MACHINE" ) ;
2829 mvwprintw ( win, 2 , 2 , "================" ) ;
2930
30- let mut credits = api:: API :: get_credits ( api) ;
31- mvwprintw ( win, height - 2 , width - 20 , format ! ( "Credits: {}" , credits. unwrap( ) ) . as_str ( ) ) ;
31+ let mut credits = match api:: API :: get_credits ( api) {
32+ Ok ( credits) => credits,
33+ Err ( err) => {
34+ eprintln ! ( "{}" , err) ;
35+ return Err ( Box :: new ( APIError :: Unauthorized ) ) ;
36+ }
37+ } ;
38+ mvwprintw ( win, height - 2 , width - 20 , format ! ( "Credits: {}" , credits) . as_str ( ) ) ;
3239
3340 let machine_status = match api:: API :: get_machine_status ( api) {
3441 Ok ( status) => {
@@ -74,10 +81,16 @@ pub fn pick_machine(api: &mut api::API) {
7481 KEY_RIGHT => {
7582 inventory:: build_menu ( api, & machine_status, selected_machine) ;
7683 // Refresh credits in case we bought anything.
77- credits = api:: API :: get_credits ( api) ;
84+ credits = match api:: API :: get_credits ( api) {
85+ Ok ( credits) => credits,
86+ Err ( err) => {
87+ eprintln ! ( "{}" , err) ;
88+ return Err ( Box :: new ( APIError :: Unauthorized ) ) ;
89+ }
90+ } ;
7891 wmove ( win, height-2 , width-20 ) ;
7992 wclrtoeol ( win) ;
80- mvwprintw ( win, height-2 , width-20 , format ! ( "Credits: {}" , credits. unwrap ( ) ) . as_str ( ) ) ;
93+ mvwprintw ( win, height-2 , width-20 , format ! ( "Credits: {}" , credits) . as_str ( ) ) ;
8194 box_ ( win, 0 , 0 ) ;
8295 refresh ( ) ;
8396 wrefresh ( win) ;
@@ -104,6 +117,7 @@ pub fn pick_machine(api: &mut api::API) {
104117 key = getch ( ) ;
105118 }
106119 ui_common:: destroy_win ( win) ;
120+ Ok ( ( ) )
107121 }
108122 _ => {
109123 endwin ( ) ;
0 commit comments