@@ -2,9 +2,12 @@ package api
22
33import (
44 "encoding/json"
5+ "errors"
6+
57 "net/http"
68 "time"
79
10+ "github.com/loginradius/lr-cli/cmdutil"
811 "github.com/loginradius/lr-cli/request"
912)
1013
@@ -16,7 +19,7 @@ type SitesReponse struct {
1619 Callbackurl string `json:"CallbackUrl"`
1720 Devdomain string `json:"DevDomain"`
1821 Ismobile bool `json:"IsMobile"`
19- Appid int `json:"AppId"`
22+ Appid int64 `json:"AppId"`
2023 Key string `json:"Key"`
2124 Secret string `json:"Secret"`
2225 Role string `json:"Role"`
@@ -35,7 +38,7 @@ type SitesReponse struct {
3538 Privacypolicy interface {} `json:"PrivacyPolicy"`
3639 Termsofservice interface {} `json:"TermsOfService"`
3740 Ownerid string `json:"OwnerId"`
38- Productplan struct {
41+ Productplan * struct {
3942 Name string `json:"Name"`
4043 Expirytime time.Time `json:"ExpiryTime"`
4144 Billingcycle interface {} `json:"BillingCycle"`
@@ -60,20 +63,24 @@ type HostedPageResponse struct {
6063 } `json:"Pages"`
6164}
6265
63- func GetSites () (* SitesReponse , error ) {
66+ type CoreAppData struct {
67+ Apps struct {
68+ Data []SitesReponse `json:"Data"`
69+ } `json:"apps"`
70+ }
6471
65- url := conf . AdminConsoleAPIDomain + "/deployment/sites?"
72+ func GetSites () ( * SitesReponse , error ) {
6673
67- var resultResp SitesReponse
68- resp , err := request . Rest ( http . MethodGet , url , nil , " " )
74+ var siteInfo SitesReponse
75+ data , err := cmdutil . ReadFile ( "currentSite.json " )
6976 if err != nil {
70- return nil , err
77+ return nil , errors . New ( "Please Login to execute this command" )
7178 }
72- err = json .Unmarshal (resp , & resultResp )
79+ err = json .Unmarshal (data , & siteInfo )
7380 if err != nil {
7481 return nil , err
7582 }
76- return & resultResp , nil
83+ return & siteInfo , nil
7784}
7885
7986func GetPage () (* HostedPageResponse , error ) {
@@ -90,3 +97,84 @@ func GetPage() (*HostedPageResponse, error) {
9097 }
9198 return & resultResp , nil
9299}
100+
101+ func UpdateDomain (domains string ) error {
102+ var url string
103+ body , _ := json .Marshal (map [string ]string {
104+ "domain" : "http://localhost" ,
105+ "production" : domains ,
106+ "staging" : "" ,
107+ })
108+
109+ url = conf .AdminConsoleAPIDomain + "/deployment/sites?"
110+ _ , err := request .Rest (http .MethodPost , url , nil , string (body ))
111+ if err != nil {
112+ return err
113+ }
114+
115+ // Updating to current site
116+ var siteInfo SitesReponse
117+ data , err := cmdutil .ReadFile ("currentSite.json" )
118+ if err != nil {
119+ return err
120+ }
121+ err = json .Unmarshal (data , & siteInfo )
122+ if err != nil {
123+ return err
124+ }
125+ siteInfo .Callbackurl = domains
126+ sInfo , _ := json .Marshal (siteInfo )
127+ _ = cmdutil .WriteFile ("currentSite.json" , sInfo )
128+
129+ return nil
130+ }
131+
132+ func GetAppsInfo () (map [int64 ]SitesReponse , error ) {
133+ var Apps CoreAppData
134+ data , err := cmdutil .ReadFile ("siteInfo.json" )
135+ if err != nil {
136+ coreAppData := conf .AdminConsoleAPIDomain + "/auth/core-app-data?"
137+ data , err = request .Rest (http .MethodGet , coreAppData , nil , "" )
138+ if err != nil {
139+ return nil , err
140+ }
141+ err = json .Unmarshal (data , & Apps )
142+ if err != nil {
143+ return nil , err
144+ }
145+ return storeSiteInfo (Apps ), nil
146+ }
147+ var siteInfo map [int64 ]SitesReponse
148+ err = json .Unmarshal (data , & siteInfo )
149+ return siteInfo , nil
150+ }
151+
152+ func storeSiteInfo (data CoreAppData ) map [int64 ]SitesReponse {
153+ siteInfo := make (map [int64 ]SitesReponse , len (data .Apps .Data ))
154+ for _ , app := range data .Apps .Data {
155+ siteInfo [app .Appid ] = app
156+ }
157+ obj , _ := json .Marshal (siteInfo )
158+ cmdutil .WriteFile ("siteInfo.json" , obj )
159+ currentId , err := CurrentID ()
160+ if err == nil {
161+ site , ok := siteInfo [currentId .CurrentAppId ]
162+ if ok {
163+ obj , _ := json .Marshal (site )
164+ cmdutil .WriteFile ("currentSite.json" , obj )
165+ }
166+ }
167+ return siteInfo
168+ }
169+
170+ func CurrentPlan () error {
171+ sitesResp , err := GetSites ()
172+ if err != nil {
173+ return err
174+ }
175+ if sitesResp .Productplan .Name == "free" {
176+ return errors .New ("Please switch to an app which enables this feature or upgrade your plan from Free Plan." )
177+
178+ }
179+ return nil
180+ }
0 commit comments