@@ -20,7 +20,7 @@ use crate::cli::chat::{
2020 get_subscription_status_with_spinner,
2121 with_spinner,
2222} ;
23- use crate :: database :: Database ;
23+ use crate :: os :: Os ;
2424use crate :: util:: system_info:: is_remote;
2525
2626const SUBSCRIBE_TITLE_TEXT : & str = color_print:: cstr! { "<white!,bold>Subscribe to Q Developer Pro</white!,bold>" } ;
@@ -37,8 +37,8 @@ pub struct SubscribeArgs {
3737}
3838
3939impl SubscribeArgs {
40- pub async fn execute ( self , database : & mut Database , session : & mut ChatSession ) -> Result < ChatState , ChatError > {
41- if is_idc_user ( database)
40+ pub async fn execute ( self , os : & mut Os , session : & mut ChatSession ) -> Result < ChatState , ChatError > {
41+ if is_idc_user ( & os . database )
4242 . await
4343 . map_err ( |e| ChatError :: Custom ( e. to_string ( ) . into ( ) ) ) ?
4444 {
@@ -50,7 +50,7 @@ impl SubscribeArgs {
5050 ) ?;
5151 } else if self . manage {
5252 queue ! ( session. stderr, style:: Print ( "\n " ) , ) ?;
53- match get_subscription_status_with_spinner ( & mut session. stderr , database ) . await {
53+ match get_subscription_status_with_spinner ( os , & mut session. stderr ) . await {
5454 Ok ( status) => {
5555 if status != ActualSubscriptionStatus :: Active {
5656 queue ! (
@@ -79,7 +79,7 @@ impl SubscribeArgs {
7979
8080 let url = format ! (
8181 "https://{}.console.aws.amazon.com/amazonq/developer/home#/subscriptions" ,
82- database
82+ os . database
8383 . get_idc_region( )
8484 . ok( )
8585 . flatten( )
@@ -94,7 +94,7 @@ impl SubscribeArgs {
9494 ) ?;
9595 }
9696 } else {
97- upgrade_to_pro ( database , session) . await ?;
97+ upgrade_to_pro ( os , session) . await ?;
9898 }
9999
100100 Ok ( ChatState :: PromptUser {
@@ -103,11 +103,11 @@ impl SubscribeArgs {
103103 }
104104}
105105
106- async fn upgrade_to_pro ( database : & mut Database , session : & mut ChatSession ) -> Result < ( ) , ChatError > {
106+ async fn upgrade_to_pro ( os : & mut Os , session : & mut ChatSession ) -> Result < ( ) , ChatError > {
107107 queue ! ( session. stderr, style:: Print ( "\n " ) , ) ?;
108108
109109 // Get current subscription status
110- match get_subscription_status_with_spinner ( & mut session. stderr , database ) . await {
110+ match get_subscription_status_with_spinner ( os , & mut session. stderr ) . await {
111111 Ok ( status) => {
112112 if status == ActualSubscriptionStatus :: Active {
113113 queue ! (
@@ -167,8 +167,12 @@ async fn upgrade_to_pro(database: &mut Database, session: &mut ChatSession) -> R
167167 }
168168
169169 // Create a subscription token and open the webpage
170- let url = with_spinner ( & mut session. stderr , "Preparing to upgrade..." , || async {
171- let r = Client :: new ( database, None ) . await ?. create_subscription_token ( ) . await ?;
170+ let r = Client :: new ( & mut os. database , None )
171+ . await ?
172+ . create_subscription_token ( )
173+ . await ?;
174+
175+ let url = with_spinner ( & mut session. stderr , "Preparing to upgrade..." , || async move {
172176 Ok :: < String , ChatError > ( r. encoded_verification_url ( ) . to_string ( ) )
173177 } )
174178 . await ?;
0 commit comments