Skip to content

Commit 8197f7b

Browse files
RevanthTanneeruravitejag
authored andcommitted
Bug Fixes for CLI Testing Round 2 (#34)
1 parent deead0c commit 8197f7b

5 files changed

Lines changed: 156 additions & 74 deletions

File tree

api/platformConfiguration.go

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

78
"github.com/loginradius/lr-cli/config"
89
"github.com/loginradius/lr-cli/request"
910
)
1011

12+
type Provider struct {
13+
HtmlFileName string `json:"HtmlFileName"`
14+
Provider string `json:"Provider"`
15+
ProviderId int `json:"ProviderId"`
16+
ProviderKey string `json:"ProviderKey"`
17+
ProviderSecret string `json:"ProviderSecret"`
18+
Scope []string `json:"Scope"`
19+
Status bool `json:"Status"`
20+
}
21+
22+
type ProviderList struct {
23+
Data1 []Provider `json:"Data"`
24+
}
1125
type FieldTypeConfig struct {
1226
Name string
1327
ShouldDisplayValidaitonRuleInput bool
@@ -98,3 +112,32 @@ func GetFields(tem string) (*ResultResp, error) {
98112
}
99113
return &resultResp, nil
100114
}
115+
func GetActiveProviders() (*ProviderList, error) {
116+
conf := config.GetInstance()
117+
Url = conf.AdminConsoleAPIDomain + "/platform-configuration/social-providers/options?"
118+
119+
var R1 ProviderList
120+
resp, err := request.Rest(http.MethodGet, Url, nil, "")
121+
122+
if err != nil {
123+
return nil, err
124+
}
125+
126+
err = json.Unmarshal(resp, &R1)
127+
if err != nil {
128+
return nil, err
129+
}
130+
return &R1, nil
131+
}
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/social/social.go

Lines changed: 81 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,19 @@ package social
22

33
import (
44
"encoding/json"
5-
"errors"
65
"fmt"
76
"net/http"
87

9-
"github.com/loginradius/lr-cli/cmdutil"
8+
"github.com/loginradius/lr-cli/api"
109
"github.com/loginradius/lr-cli/config"
1110
"github.com/loginradius/lr-cli/request"
1211

1312
"github.com/spf13/cobra"
1413
)
1514

1615
var fileName string
16+
var arr = [5]string{"Facebook", "Google", "Twitter", "LinkedIn", "GitHub"}
17+
var Url string
1718

1819
type socialProvider struct {
1920
Provider string `json:"Provider"`
@@ -44,42 +45,88 @@ func NewsocialCmd() *cobra.Command {
4445
opts1.Status = true
4546

4647
cmd := &cobra.Command{
47-
Use: "social",
48-
Short: "add social provider",
49-
Long: `This commmand adds social provider`,
50-
Example: `$ lr add social --provider <provider>`,
48+
Use: "social",
49+
Short: "add social provider",
50+
Long: `This commmand adds social provider`,
51+
Example: `$ lr add social
52+
1 Facebook
53+
2 Google
54+
3 Twitter
55+
4 LinkedIn
56+
5 GitHub
57+
Please select a number from 1 to 5
58+
:2
59+
Please enter the provider key:
60+
<key>
61+
Please enter the provider secret:
62+
<secret>
63+
social provider added successfully
64+
`,
5165
RunE: func(cmd *cobra.Command, args []string) error {
52-
if opts1.Provider == "" {
53-
return &cmdutil.FlagError{Err: errors.New("`provider` is require argument")}
54-
}
5566

56-
if opts1.ProviderKey == "" {
57-
return &cmdutil.FlagError{Err: errors.New("`ProviderKey` is require argument")}
58-
}
59-
60-
if opts1.ProviderSecret == "" {
61-
return &cmdutil.FlagError{Err: errors.New("`ProviderSecret` is require argument")}
62-
}
6367
return add1(opts1)
6468

6569
},
6670
}
6771

68-
fl := cmd.Flags()
69-
fl.StringVarP(&opts1.Provider, "provider", "p", "", "provider name")
70-
fl.StringVarP(&opts1.ProviderKey, "ProviderKey", "k", "", "ProviderKey")
71-
fl.StringVarP(&opts1.ProviderSecret, "ProviderSecret", "s", "", "ProviderSecret")
7272
return cmd
7373
}
7474

7575
func add1(opts1 *socialProvider) error {
76+
conf := config.GetInstance()
77+
78+
res, err := api.GetSites()
79+
if err != nil {
80+
return err
81+
}
82+
var num int
83+
if res.Productplan.Name == "free" {
84+
for i := 0; i < 3; i++ {
85+
fmt.Println(i+1, arr[i])
86+
}
87+
fmt.Print("Please select a number from 1 to 3 :")
88+
fmt.Scanln(&num)
89+
for 1 > num || num > 3 {
90+
fmt.Print("Please select a number from 1 to 3 :")
91+
92+
fmt.Scanln(&num)
93+
}
94+
} else if res.Productplan.Name == "developer" {
95+
for i := 0; i < len(arr); i++ {
96+
fmt.Println(i+1, arr[i])
97+
}
98+
fmt.Print("Please select a number from 1 to " + fmt.Sprint(len(arr)) + " :")
99+
fmt.Scanln(&num)
100+
for 1 > num || num > 5 {
101+
fmt.Print("Please select a number from 1 to " + fmt.Sprint(len(arr)) + " :")
102+
103+
fmt.Scanln(&num)
104+
}
105+
106+
} else {
107+
fmt.Println("The plan needs to be either 'free' or 'developer' to use this")
108+
}
109+
Match, err := verify(arr[num-1])
110+
if err != nil {
111+
return err
112+
}
113+
if Match {
114+
fmt.Println("The social Provider already exists")
115+
return nil
116+
}
117+
opts1.Provider = arr[num-1]
76118
opts2 := &Result{}
119+
var key string
120+
var secret string
121+
fmt.Println("Please enter the provider key:")
122+
fmt.Scanln(&key)
123+
fmt.Println("Please enter the provider secret:")
124+
fmt.Scanln(&secret)
77125
opts2.Status = true
78-
126+
opts1.ProviderKey = key
127+
opts1.ProviderSecret = secret
79128
opts2.ProviderName = opts1.Provider
80129

81-
conf := config.GetInstance()
82-
83130
url1 = conf.AdminConsoleAPIDomain + "/platform-configuration/social-provider/options?"
84131
var requestBody socialProviderList
85132
requestBody.Data = append(requestBody.Data, *opts1)
@@ -109,3 +156,14 @@ func add1(opts1 *socialProvider) error {
109156
return nil
110157

111158
}
159+
160+
func verify(str string) (bool, error) {
161+
result, err := api.GetActiveProviders()
162+
var match = false
163+
for i := 0; i < len(result.Data1); i++ {
164+
if str == result.Data1[i].Provider {
165+
match = true
166+
}
167+
}
168+
return match, err
169+
}

cmd/delete/domain/domain.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,15 @@ func NewdomainCmd() *cobra.Command {
6262
}
6363

6464
func delete(remVal string, allDomain string) error {
65-
err := api.UpdateDomain(allDomain)
65+
Match, err := api.Verify(remVal)
66+
if err != nil {
67+
return err
68+
}
69+
if !Match {
70+
fmt.Println("Please verify the domain you have entered")
71+
return nil
72+
}
73+
err = api.UpdateDomain(allDomain)
6674
if err != nil {
6775
return err
6876
}

cmd/get/social/social.go

Lines changed: 14 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,14 @@
11
package social
22

33
import (
4-
"encoding/json"
54
"fmt"
6-
"net/http"
75

86
"github.com/loginradius/lr-cli/api"
9-
"github.com/loginradius/lr-cli/config"
10-
"github.com/loginradius/lr-cli/request"
117
"github.com/spf13/cobra"
128
)
139

1410
var temp string
1511

16-
type socialProvider struct {
17-
HtmlFileName string `json:"HtmlFileName"`
18-
Provider string `json:"Provider"`
19-
ProviderId int `json:"ProviderId"`
20-
ProviderKey string `json:"ProviderKey"`
21-
ProviderSecret string `json:"ProviderSecret"`
22-
Scope []string `json:"Scope"`
23-
Status bool `json:"Status"`
24-
}
25-
26-
type socialProviderList struct {
27-
Data []socialProvider `json:"Data"`
28-
}
29-
3012
var Url string
3113

3214
var arr = [5]string{"Facebook", "Google", "Twitter", "LinkedIn", "GitHub"}
@@ -82,53 +64,35 @@ func get() error {
8264
}
8365
}
8466
if temp == "active" {
85-
resultResp, err := GetActiveProviders()
67+
resultResp, err := api.GetActiveProviders()
8668
if err != nil {
8769
return err
8870
}
89-
if len(resultResp.Data) == 0 {
71+
if len(resultResp.Data1) == 0 {
9072
fmt.Println("There is no social configuration")
9173
return nil
9274
}
9375
var num int
94-
for i := 0; i < len(resultResp.Data); i++ {
76+
for i := 0; i < len(resultResp.Data1); i++ {
9577
fmt.Print(fmt.Sprint(i+1) + ".")
96-
fmt.Println(resultResp.Data[i].Provider)
78+
fmt.Println(resultResp.Data1[i].Provider)
9779
}
9880
// Taking input from user
99-
fmt.Print("Please select a number from 1 to " + fmt.Sprint(len(resultResp.Data)) + " :")
81+
fmt.Print("Please select a number from 1 to " + fmt.Sprint(len(resultResp.Data1)) + " :")
10082
fmt.Scanln(&num)
101-
for 1 > num || num > len(resultResp.Data) {
102-
fmt.Print("Please select a number from 1 to " + fmt.Sprint(len(resultResp.Data)) + " :")
83+
for 1 > num || num > len(resultResp.Data1) {
84+
fmt.Print("Please select a number from 1 to " + fmt.Sprint(len(resultResp.Data1)) + " :")
10385

10486
fmt.Scanln(&num)
10587
}
106-
fmt.Println("HtmlFileName: " + resultResp.Data[num-1].HtmlFileName)
107-
fmt.Println("Provider: ", resultResp.Data[num-1].Provider)
108-
fmt.Println("ProviderId: ", resultResp.Data[num-1].ProviderId)
109-
fmt.Println("ProviderKey: ", resultResp.Data[num-1].ProviderKey)
110-
fmt.Println("ProviderSecret: ", resultResp.Data[num-1].ProviderSecret)
111-
fmt.Println("Scope: ", resultResp.Data[num-1].Scope)
112-
fmt.Println("Status: ", resultResp.Data[num-1].Status)
88+
fmt.Println("HtmlFileName: " + resultResp.Data1[num-1].HtmlFileName)
89+
fmt.Println("Provider: ", resultResp.Data1[num-1].Provider)
90+
fmt.Println("ProviderId: ", resultResp.Data1[num-1].ProviderId)
91+
fmt.Println("ProviderKey: ", resultResp.Data1[num-1].ProviderKey)
92+
fmt.Println("ProviderSecret: ", resultResp.Data1[num-1].ProviderSecret)
93+
fmt.Println("Scope: ", resultResp.Data1[num-1].Scope)
94+
fmt.Println("Status: ", resultResp.Data1[num-1].Status)
11395
}
11496

11597
return nil
11698
}
117-
118-
func GetActiveProviders() (*socialProviderList, error) {
119-
conf := config.GetInstance()
120-
Url = conf.AdminConsoleAPIDomain + "/platform-configuration/social-providers/options?"
121-
122-
var R1 socialProviderList
123-
resp, err := request.Rest(http.MethodGet, Url, nil, "")
124-
125-
if err != nil {
126-
return nil, err
127-
}
128-
129-
err = json.Unmarshal(resp, &R1)
130-
if err != nil {
131-
return nil, err
132-
}
133-
return &R1, nil
134-
}

cmd/set/domain/domain.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"strings"
99

1010
"github.com/MakeNowJust/heredoc"
11+
"github.com/loginradius/lr-cli/api"
1112
"github.com/loginradius/lr-cli/request"
1213

1314
"github.com/loginradius/lr-cli/cmdutil"
@@ -84,6 +85,14 @@ func get() (*domainManagement, error) {
8485
}
8586

8687
func set(domain string) error {
88+
Match, err := api.Verify(domain)
89+
if err != nil {
90+
return err
91+
}
92+
if !Match {
93+
fmt.Println("Please verify the domain you have entered")
94+
return nil
95+
}
8796
var url string
8897
body, _ := json.Marshal(map[string]string{
8998
"domain": "http://localhost",

0 commit comments

Comments
 (0)