Skip to content

Commit 525959d

Browse files
committed
Fixed Domain related bugs (#41)
1 parent b68cb4c commit 525959d

10 files changed

Lines changed: 59 additions & 115 deletions

File tree

api/deployment.go

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package api
33
import (
44
"encoding/json"
55
"errors"
6+
"strings"
67

78
"net/http"
89
"time"
@@ -98,16 +99,22 @@ func GetPage() (*HostedPageResponse, error) {
9899
return &resultResp, nil
99100
}
100101

101-
func UpdateDomain(domains string) error {
102+
func UpdateDomain(domains []string) error {
102103
var url string
104+
103105
body, _ := json.Marshal(map[string]string{
104-
"domain": "http://localhost",
105-
"production": domains,
106+
"domain": domains[0],
107+
"production": strings.Join(domains, ";"),
106108
"staging": "",
107109
})
108110

109111
url = conf.AdminConsoleAPIDomain + "/deployment/sites?"
110-
_, err := request.Rest(http.MethodPost, url, nil, string(body))
112+
domainResp, err := request.Rest(http.MethodPost, url, nil, string(body))
113+
if err != nil {
114+
return err
115+
}
116+
var dInfo SitesReponse
117+
err = json.Unmarshal(domainResp, &dInfo)
111118
if err != nil {
112119
return err
113120
}
@@ -122,21 +129,22 @@ func UpdateDomain(domains string) error {
122129
if err != nil {
123130
return err
124131
}
125-
siteInfo.Callbackurl = domains
132+
siteInfo.Devdomain = dInfo.Devdomain
133+
siteInfo.Callbackurl = dInfo.Callbackurl
134+
siteInfo.Domain = dInfo.Domain
126135
sInfo, _ := json.Marshal(siteInfo)
127136
_ = cmdutil.WriteFile("currentSite.json", sInfo)
128137

129138
return nil
130139
}
131140

132-
func CurrentPlan() error {
141+
func CheckPlan() error {
133142
sitesResp, err := GetSites()
134143
if err != nil {
135144
return err
136145
}
137146
if sitesResp.Productplan.Name == "free" {
138-
return errors.New("Please switch to an app which enables this feature or upgrade your plan from Free Plan.")
139-
147+
return errors.New("Please switch to developer/developer pro app or upgrade your plan to enable this feature.")
140148
}
141149
return nil
142150
}

api/platformConfiguration.go

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package api
33
import (
44
"encoding/json"
55
"net/http"
6-
"strings"
76

87
"github.com/loginradius/lr-cli/config"
98
"github.com/loginradius/lr-cli/request"
@@ -129,15 +128,3 @@ func GetActiveProviders() (*ProviderList, error) {
129128
}
130129
return &R1, nil
131130
}
132-
func Verify(str string) (bool, error) {
133-
var match = false
134-
resp, err := GetSites()
135-
136-
res1 := strings.Split(resp.Callbackurl, ";")
137-
for i := 0; i < len(res1); i++ {
138-
if str == res1[i] {
139-
match = true
140-
}
141-
}
142-
return match, err
143-
}

cmd/add/domain/domain.go

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -45,33 +45,27 @@ func NewdomainCmd() *cobra.Command {
4545
if err != nil {
4646
return err
4747
}
48-
s := strings.Split(p.Callbackurl, ";")
49-
if len(s) < 3 {
50-
return add(p.Callbackurl, opts.Domain)
48+
if strings.Contains(p.Callbackurl, opts.Domain) {
49+
return &cmdutil.FlagError{Err: errors.New("Entered Domain is already added")}
50+
}
51+
urls := strings.Split(p.Callbackurl, ";")
52+
plan := p.Productplan.Name
53+
if (plan == "free" && len(urls) < 3) || (plan == "developer" && len(urls) < 5) {
54+
urls = append(urls, opts.Domain)
55+
err := api.UpdateDomain(urls)
56+
if err != nil {
57+
return err
58+
}
59+
fmt.Println(opts.Domain, "is now whitelisted.")
60+
return nil
5161
} else {
52-
return &cmdutil.FlagError{Err: errors.New("more than 3 domains cannot be added in free plan")}
62+
return &cmdutil.FlagError{Err: errors.New("To add more domains, plan upgradation is required")}
5363
}
5464

5565
},
5666
}
57-
5867
fl := cmd.Flags()
59-
fl.StringVarP(&opts.Domain, "domain", "d", "", "domain name")
68+
fl.StringVarP(&opts.Domain, "domain", "d", "", "Enter Domain Value")
6069

6170
return cmd
6271
}
63-
64-
func add(allDomains string, newDomain string) error {
65-
domain := ""
66-
if allDomains == "" {
67-
domain = newDomain
68-
} else {
69-
domain = allDomains + ";" + newDomain
70-
}
71-
err := api.UpdateDomain(domain)
72-
if err != nil {
73-
return err
74-
}
75-
fmt.Println("Your Domain " + newDomain + " is now whitelisted")
76-
return nil
77-
}

cmd/add/hooks/hooks.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func NewHooksCmd() *cobra.Command {
3636
}
3737

3838
func addHooks() error {
39-
err := api.CurrentPlan()
39+
err := api.CheckPlan()
4040
if err != nil {
4141
return err
4242
}

cmd/delete/domain/domain.go

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,38 +41,31 @@ func NewdomainCmd() *cobra.Command {
4141
return err
4242
}
4343
urls := strings.Split(p.Callbackurl, ";")
44+
if !strings.Contains(p.Callbackurl, opts.Domain) {
45+
return &cmdutil.FlagError{Err: errors.New("Entered Domain not found")}
46+
}
4447
if len(urls) == 1 {
4548
return &cmdutil.FlagError{Err: errors.New("Cannot delete the last domain")}
46-
4749
}
4850
for index, url := range urls {
4951
if url == opts.Domain {
5052
urls = append(urls[:index], urls[index+1:]...)
5153
break
5254
}
5355
}
54-
newdomain := strings.Join(urls, ";")
55-
return delete(opts.Domain, newdomain)
56+
return delete(opts.Domain, urls)
5657

5758
},
5859
}
5960

6061
fl := cmd.Flags()
61-
fl.StringVarP(&opts.Domain, "domain", "d", "", "domain name")
62+
fl.StringVarP(&opts.Domain, "domain", "d", "", "Enter Domain Value")
6263

6364
return cmd
6465
}
6566

66-
func delete(remVal string, allDomain string) error {
67-
Match, err := api.Verify(remVal)
68-
if err != nil {
69-
return err
70-
}
71-
if !Match {
72-
fmt.Println("Please verify the domain you have entered")
73-
return nil
74-
}
75-
err = api.UpdateDomain(allDomain)
67+
func delete(remVal string, allDomain []string) error {
68+
err := api.UpdateDomain(allDomain)
7669
if err != nil {
7770
return err
7871
}

cmd/delete/hooks/hooks.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func NewHooksCmd() *cobra.Command {
4848
}
4949

5050
func deleteHooks() error {
51-
err := api.CurrentPlan()
51+
err := api.CheckPlan()
5252
if err != nil {
5353
return err
5454
}

cmd/get/hooks/hooks.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func NewHooksCmd() *cobra.Command {
3131
}
3232

3333
func getHooks() error {
34-
err := api.CurrentPlan()
34+
err := api.CheckPlan()
3535
if err != nil {
3636
return err
3737
}

cmd/get/site/site.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,5 @@ func Output(AppInfo api.SitesReponse) {
9090
fmt.Println("App Name: ", AppInfo.Appname)
9191
fmt.Println("App ID: ", AppInfo.Appid)
9292
fmt.Println("Domain: ", AppInfo.Domain)
93+
fmt.Println("Plan: ", AppInfo.Productplan.Name)
9394
}

cmd/login/login.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ func listSites() error {
112112
}
113113
fmt.Printf("Do you wish to start with a different site ?(Y/N): ")
114114
fmt.Scanf("%s\n", &option)
115-
if option != "Y" {
115+
if option != "Y" && option != "y" {
116116
return nil
117117
}
118118

cmd/set/domain/domain.go

Lines changed: 16 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
package domain
22

33
import (
4-
"encoding/json"
54
"errors"
65
"fmt"
7-
"net/http"
86
"strings"
97

108
"github.com/MakeNowJust/heredoc"
119
"github.com/loginradius/lr-cli/api"
12-
"github.com/loginradius/lr-cli/request"
13-
1410
"github.com/loginradius/lr-cli/cmdutil"
15-
"github.com/loginradius/lr-cli/config"
16-
1711
"github.com/spf13/cobra"
1812
)
1913

@@ -39,80 +33,47 @@ func NewdomainCmd() *cobra.Command {
3933
Use: "domain",
4034
Short: "set domain",
4135
Long: `This commmand sets domain`,
42-
Example: heredoc.Doc(`$ lr set domain --domain <domain> --domainmod <domainmodified>
43-
domain successfully updated
44-
http://localhost;...
36+
Example: heredoc.Doc(`$ lr set domain --domain <domain> --new-domain <new domain>
37+
Domain successfully updated
4538
`),
4639
RunE: func(cmd *cobra.Command, args []string) error {
4740
if opts.Domain == "" {
4841
return &cmdutil.FlagError{Err: errors.New("`domain` is require argument")}
4942
}
5043

5144
if opts.DomainMod == "" {
52-
return &cmdutil.FlagError{Err: errors.New("`domainmod` is require argument")}
45+
return &cmdutil.FlagError{Err: errors.New("`new-domain` is require argument")}
5346
}
5447

55-
var p, err = get()
48+
p, err := api.GetSites()
5649
if err != nil {
5750
return err
5851
}
59-
domain := strings.ReplaceAll(p.CallbackUrl, (";" + opts.Domain), (";" + opts.DomainMod))
52+
if !strings.Contains(p.Callbackurl, opts.Domain) {
53+
return &cmdutil.FlagError{Err: errors.New("Entered Domain Not Found")}
54+
}
55+
if opts.Domain == "http://localhost" || opts.Domain == "http://127.0.0.1" {
56+
return &cmdutil.FlagError{Err: errors.New("Cannot Update Default Domains")}
57+
}
58+
domain := strings.ReplaceAll(p.Callbackurl, opts.Domain, opts.DomainMod)
6059
return set(domain)
6160

6261
},
6362
}
6463

6564
fl := cmd.Flags()
66-
fl.StringVarP(&opts.Domain, "domain", "d", "", "domain name")
67-
fl.StringVarP(&opts.DomainMod, "domainmod", "m", "", "domain modified name")
65+
fl.StringVarP(&opts.Domain, "domain", "d", "", "Enter Old Domain Value")
66+
fl.StringVarP(&opts.DomainMod, "new-domain", "n", "", "Enter New Domain Value")
6867

6968
return cmd
7069
}
7170

72-
func get() (*domainManagement, error) {
73-
conf := config.GetInstance()
74-
var url string
75-
url = conf.AdminConsoleAPIDomain + "/deployment/sites?"
76-
77-
var resultResp *domainManagement
78-
resp, err := request.Rest(http.MethodGet, url, nil, "")
79-
if err != nil {
80-
return nil, err
81-
}
82-
err = json.Unmarshal(resp, &resultResp)
83-
if err != nil {
84-
return nil, err
85-
}
86-
87-
return resultResp, nil
88-
}
89-
9071
func set(domain string) error {
91-
Match, err := api.Verify(domain)
92-
if err != nil {
93-
return err
94-
}
95-
if !Match {
96-
fmt.Println("Please verify the domain you have entered")
97-
return nil
98-
}
99-
var url string
100-
body, _ := json.Marshal(map[string]string{
101-
"domain": "http://localhost",
102-
"production": domain,
103-
"staging": "",
104-
})
105-
conf := config.GetInstance()
106-
107-
url = conf.AdminConsoleAPIDomain + "/deployment/sites?"
108-
109-
var resultResp Result
110-
resp, err := request.Rest(http.MethodPost, url, nil, string(body))
111-
err = json.Unmarshal(resp, &resultResp)
72+
urls := strings.Split(domain, ";")
73+
err := api.UpdateDomain(urls)
11274
if err != nil {
11375
return err
11476
}
115-
fmt.Println("domain successfully updated")
116-
fmt.Println(resultResp.CallbackUrl)
77+
fmt.Println("Domain Successfully Updated")
11778
return nil
11879
}

0 commit comments

Comments
 (0)