Skip to content

Commit 9601517

Browse files
Akash-Patilmohammed786
authored andcommitted
Updated functionality of Login command (#37)
1 parent 7961100 commit 9601517

1 file changed

Lines changed: 52 additions & 1 deletion

File tree

cmd/login/login.go

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ type LoginOpts struct {
2121

2222
// temparary Server
2323
var tempToken string
24+
var appid int64
2425
var tempServer *cmdutil.TempServer
2526

2627
func NewLoginCmd() *cobra.Command {
@@ -72,20 +73,70 @@ func doLogin(accessToken string) error {
7273
if err != nil {
7374
return err
7475
}
76+
appid = int64(resObj.AppID)
7577
creds, _ := json.Marshal(resObj)
7678
err = cmdutil.WriteFile("token.json", creds)
7779
if err != nil {
7880
return err
7981
}
8082
fmt.Println("Successfully Authenticated, Fetching Your Site(s)...")
81-
_, err = api.GetAppsInfo()
83+
err = listSites()
8284
if err != nil {
8385
return err
8486
}
8587
fmt.Println("Successfully Logged In")
8688
return nil
8789
}
8890

91+
func listSites() error {
92+
m := make(map[int]int64)
93+
var option string
94+
var siteChoice int
95+
appInfo, err := api.GetAppsInfo()
96+
if err != nil {
97+
return err
98+
}
99+
var i int
100+
fmt.Println("List of sites: ")
101+
for ID, App := range appInfo {
102+
i = i + 1
103+
if appid == ID {
104+
fmt.Println(i, "-", App.Appname, "(Default site)")
105+
} else {
106+
fmt.Println(i, "-", App.Appname)
107+
m[i] = ID //store ID into map except for the default site
108+
}
109+
}
110+
if len(appInfo) == 1 {
111+
return nil
112+
}
113+
fmt.Printf("Do you wish to start with a different site ?(Y/N): ")
114+
fmt.Scanf("%s\n", &option)
115+
if option != "Y" {
116+
return nil
117+
}
118+
119+
fmt.Printf("Enter the corresponding number of the site as displayed above: ")
120+
fmt.Scanf("%d\n", &siteChoice)
121+
if siteChoice > len(appInfo) || siteChoice <= 0 {
122+
fmt.Println("Invalid choice. Switching to default site.")
123+
return nil
124+
}
125+
if m[siteChoice] == 0 {
126+
fmt.Println("This is already the current active site.")
127+
return nil
128+
}
129+
switchId := m[siteChoice]
130+
switchRespObj, err := api.SetSites(switchId)
131+
err = api.SitesBasic(switchRespObj)
132+
if err != nil {
133+
return err
134+
}
135+
fmt.Println("Site has been updated.")
136+
137+
return nil
138+
}
139+
89140
func validateLogin() bool {
90141
_, err := cmdutil.ReadFile("token.json")
91142
if err != nil {

0 commit comments

Comments
 (0)