@@ -15,7 +15,7 @@ use reqwest::StatusCode;
1515use crate :: api:: { PhylumApi , PhylumApiError , ResponseError } ;
1616use crate :: commands:: { project, CommandResult , ExitCode } ;
1717use crate :: config:: { self , Config } ;
18- use crate :: { print_user_success, print_user_warning} ;
18+ use crate :: { print_user_failure , print_user_success, print_user_warning} ;
1919
2020/// Handle `phylum init` subcommand.
2121pub async fn handle_init ( api : & PhylumApi , matches : & ArgMatches , config : Config ) -> CommandResult {
@@ -44,7 +44,15 @@ pub async fn handle_init(api: &PhylumApi, matches: &ArgMatches, config: Config)
4444 let org = config. org ( ) ;
4545 let groups: Vec < _ > = match org {
4646 Some ( org) => {
47- api. org_groups ( org) . await ?. groups . into_iter ( ) . map ( |group| group. name ) . collect ( )
47+ let org_groups = match api. org_groups ( org) . await {
48+ Ok ( org_groups) => org_groups,
49+ Err ( err) if err. status ( ) == Some ( StatusCode :: NOT_FOUND ) => {
50+ print_user_failure ! ( "Organization {org:?} does not exist." ) ;
51+ return Ok ( ExitCode :: NotFound ) ;
52+ } ,
53+ Err ( err) => return Err ( err. into ( ) ) ,
54+ } ;
55+ org_groups. groups . into_iter ( ) . map ( |group| group. name ) . collect ( )
4856 } ,
4957 None => {
5058 api. get_groups_list ( ) . await ?. groups . into_iter ( ) . map ( |group| group. group_name ) . collect ( )
0 commit comments