@@ -16,68 +16,96 @@ program
1616 . action ( ( ) => account ( { reset : program . reset , token : program . token } ) )
1717 . parse ( process . argv ) ;
1818
19- if ( ! program . args . length ) account ( program . opts ( ) ) ;
19+ if ( ! program . args . length ) account ( program . opts ( ) ) ;
2020
2121function account ( { reset, token} ) {
2222 configuration
23- . load ( )
24- . then ( settings => {
25- console . log ( chalk . green ( `Account information for ${ chalk . green . underline ( settings . username || '-' ) } on ${ chalk . green . underline ( settings . url || '-' ) } ` ) ) ;
26- if ( ! ( settings . token && settings . username ) ) return Promise . reject ( new Error ( 'Sign in failed' ) )
27- return settings ;
28- } )
29- . then ( settings => reset ? credentials . reset ( settings ) . then ( data => Promise . reject ( data ) ) : Promise . resolve ( settings ) )
30- . then ( settings => {
31- return fetch ( `${ settings . url } /auth/account` , { headers : { 'Authorization' : `Bearer ${ settings . token } ` , timeout : 10 , } } )
32- . then ( response => response . status >= 400 ? Promise . reject ( new Error ( `Response error: ${ response . statusText } ` ) ) : response )
33- . then ( response => response . json ( ) . then ( data => Object . assign ( { } , data , { version : response . headers . get ( 'x-dropstack-version' ) , 'support-stateful' : response . headers . get ( 'x-dropstack-stateful' ) } ) ) )
34- . then ( data => Object . assign ( { } , data , settings ) ) ;
35- } )
36- . then ( data => Boolean ( data . message ) ? Promise . reject ( new Error ( data . message ) ) : data )
37- . then ( data => {
38- let message = `${ chalk . gray ( `${ pad ( 15 , 'Account ID' , ' ' ) } : ${ chalk . white ( data . id ) } ` ) } \n` ;
39- message += `${ chalk . gray ( `${ pad ( 15 , 'Server Version' , ' ' ) } : ${ chalk . white ( data . version ) } ` ) } \n` ;
40- message += `${ chalk . gray ( `${ pad ( 15 , 'Client Version' , ' ' ) } : ${ chalk . white ( appPackage . version ) } ` ) } \n` ;
41- message += `${ chalk . gray ( `${ pad ( 15 , 'Server URL' , ' ' ) } : ${ chalk . white ( data . url ) } ` ) } \n` ;
42- message += `${ chalk . gray ( `${ pad ( 15 , 'Signed up' , ' ' ) } : ${ chalk . white ( new Date ( data . signedUpAt ) ) } ` ) } ` ;
43- if ( data [ 'support-stateful' ] ) message += `\n${ chalk . gray ( `${ pad ( 15 , 'Stateful' , ' ' ) } : ${ chalk . white ( data [ 'support-stateful' ] ) } ` ) } ` ;
44- if ( data . metadata && data . metadata . plan ) message += `\n${ chalk . gray ( `${ pad ( 15 , 'Plan (beta)' , ' ' ) } : ${ chalk . white ( data . metadata && data . metadata . plan || '-' ) } ` ) } ` ;
45- if ( token ) message += `\n${ chalk . gray ( `${ pad ( 15 , 'JSON Web Token' , ' ' ) } : ${ chalk . white ( data . token ) } ` ) } ` ;
46- console . log ( boxen ( message , { padding : 1 , borderColor : 'gray' , margin : 1 } ) ) ;
23+ . load ( )
24+ . then ( settings => {
25+ console . log (
26+ chalk . green (
27+ `Account information for ${ chalk . green . underline ( settings . username || '-' ) } on ${ chalk . green . underline (
28+ settings . url || '-'
29+ ) } `
30+ )
31+ ) ;
32+ if ( ! ( settings . token && settings . username ) ) return Promise . reject ( new Error ( 'Sign in failed' ) ) ;
33+ return settings ;
34+ } )
35+ . then (
36+ settings => ( reset ? credentials . reset ( settings ) . then ( data => Promise . reject ( data ) ) : Promise . resolve ( settings ) )
37+ )
38+ . then ( settings => {
39+ return fetch ( `${ settings . url } /auth/account` , {
40+ headers : { Authorization : `Bearer ${ settings . token } ` , timeout : 10 }
41+ } )
42+ . then (
43+ response =>
44+ response . status >= 400 ? Promise . reject ( new Error ( `Response error: ${ response . statusText } ` ) ) : response
45+ )
46+ . then ( response =>
47+ response . json ( ) . then ( data =>
48+ Object . assign ( { } , data , {
49+ version : response . headers . get ( 'x-dropstack-version' )
50+ } )
51+ )
52+ )
53+ . then ( data => Object . assign ( { } , settings , data ) ) ;
54+ } )
55+ . then ( data => ( Boolean ( data . message ) ? Promise . reject ( new Error ( data . message ) ) : data ) )
56+ . then ( data => {
57+ let message = `${ chalk . gray ( `${ pad ( 15 , 'Account ID' , ' ' ) } : ${ chalk . white ( data . id ) } ` ) } \n` ;
58+ message += `${ chalk . gray ( `${ pad ( 15 , 'Server Version' , ' ' ) } : ${ chalk . white ( data . version ) } ` ) } \n` ;
59+ message += `${ chalk . gray ( `${ pad ( 15 , 'Client Version' , ' ' ) } : ${ chalk . white ( appPackage . version ) } ` ) } \n` ;
60+ message += `${ chalk . gray ( `${ pad ( 15 , 'Server URL' , ' ' ) } : ${ chalk . white ( data . url ) } ` ) } ` ;
61+ if ( data . signedUpAt )
62+ message += `\n${ chalk . gray ( `${ pad ( 15 , 'Signed up' , ' ' ) } : ${ chalk . white ( new Date ( data . signedUpAt ) ) } ` ) } ` ;
63+ if ( data . metadata && data . metadata . plan )
64+ message += `\n${ chalk . gray (
65+ `${ pad ( 15 , 'Plan (beta)' , ' ' ) } : ${ chalk . white ( ( data . metadata && data . metadata . plan ) || '-' ) } `
66+ ) } `;
67+ if ( token ) message += `\n${ chalk . gray ( `${ pad ( 15 , 'JSON Web Token' , ' ' ) } : ${ chalk . white ( data . token ) } ` ) } ` ;
68+ console . log ( boxen ( message , { padding : 1 , borderColor : 'gray' , margin : 1 } ) ) ;
4769
48- process . exit ( 0 ) ;
49- } )
50- . catch ( err => {
51- if ( err . message === 'We\ 've just sent you an email to reset your password.' ) {
52- console . log ( `\n${ chalk . yellow ( err . message ) } ` ) ;
53- return process . exit ( 0 ) ;
54- }
70+ process . exit ( 0 ) ;
71+ } )
72+ . catch ( err => {
73+ if ( err . message === "We 've just sent you an email to reset your password." ) {
74+ console . log ( `\n${ chalk . yellow ( err . message ) } ` ) ;
75+ return process . exit ( 0 ) ;
76+ }
5577
56- if ( err . message === 'canceled' ) {
57- console . log ( chalk . yellow ( '\nAborted operation.' ) ) ;
58- return process . exit ( 0 ) ;
59- }
78+ if ( err . message === 'canceled' ) {
79+ console . log ( chalk . yellow ( '\nAborted operation.' ) ) ;
80+ return process . exit ( 0 ) ;
81+ }
6082
61- if ( err . message === 'Sign in failed' ) {
62- console . error ( chalk . red ( `\nCredentials not found. Use ${ chalk . bold ( 'dropstack login <url>' ) } to verifiy your credentials.` ) ) ;
63- process . exit ( 1 ) ;
64- }
83+ if ( err . message === 'Sign in failed' ) {
84+ console . error (
85+ chalk . red ( `\nCredentials not found. Use ${ chalk . bold ( 'dropstack login <url>' ) } to verifiy your credentials.` )
86+ ) ;
87+ process . exit ( 1 ) ;
88+ }
6589
66- if ( err . message === 'Unauthorized' ) {
67- console . error ( chalk . red ( `\nUnauthorized. Use ${ chalk . bold ( 'dropstack login <url>' ) } to verifiy your credentials.` ) ) ;
68- process . exit ( 1 ) ;
69- }
90+ if ( err . message === 'Unauthorized' ) {
91+ console . error (
92+ chalk . red ( `\nUnauthorized. Use ${ chalk . bold ( 'dropstack login <url>' ) } to verifiy your credentials.` )
93+ ) ;
94+ process . exit ( 1 ) ;
95+ }
7096
71- if ( err . message === 'Not found' ) {
72- console . error ( chalk . red ( `\nServer communication error occurred! Retry later please.\nError: ${ chalk . gray ( err . message ) } ` ) ) ;
73- process . exit ( 1 ) ;
74- }
97+ if ( err . message === 'Not found' ) {
98+ console . error (
99+ chalk . red ( `\nServer communication error occurred! Retry later please.\nError: ${ chalk . gray ( err . message ) } ` )
100+ ) ;
101+ process . exit ( 1 ) ;
102+ }
75103
76- console . error ( chalk . red ( `\nAn unexpected error occurred!\nError: ${ chalk . gray ( err . message ) } ` ) ) ;
77- process . exit ( 1 ) ;
78- } ) ;
104+ console . error ( chalk . red ( `\nAn unexpected error occurred!\nError: ${ chalk . gray ( err . message ) } ` ) ) ;
105+ process . exit ( 1 ) ;
106+ } ) ;
79107}
80108
81109function pad ( width , string , padding ) {
82- return ( width <= string . length ) ? string : pad ( width , string + padding , padding )
83- }
110+ return width <= string . length ? string : pad ( width , string + padding , padding ) ;
111+ }
0 commit comments