@@ -2,18 +2,19 @@ package social
22
33import (
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
1615var fileName string
16+ var arr = [5 ]string {"Facebook" , "Google" , "Twitter" , "LinkedIn" , "GitHub" }
17+ var Url string
1718
1819type 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
7575func 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+ }
0 commit comments