@@ -12,176 +12,172 @@ var PreferencesModel = require('*/cartridge/models/fwPreferencesModel.js');
1212 *
1313 * @module controllers/show
1414 */
15- function show ( )
16- {
15+ function show ( ) {
1716 /* Local API Includes */
1817 try {
19- var redirectCallbackUrl = request . getHttpProtocol ( ) + "://" + request . getHttpHost ( ) + dw . web . URLUtils . url ( 'Oauth-callback' ) ;
20- var oauthCOObj = CustomObjectMgr . getCustomObject ( 'FireworkOauthCO' , dw . system . Site . current . ID ) ;
21- if ( oauthCOObj != null )
22- {
23- var getTokenJSONObj = { } ;
24- getTokenJSONObj . clientSecret = oauthCOObj . custom . fireworkClientSecret ;
25- getTokenJSONObj . clientId = oauthCOObj . custom . fireworkClientId ;
26- getTokenJSONObj . shortCode = oauthCOObj . custom . fireworkShortCode ;
27- getTokenJSONObj . fworganizationid = oauthCOObj . custom . fireworkOrgId ;
28- getTokenJSONObj . tenant_id = oauthCOObj . custom . fireworkTenantId ;
29- var successURL = dw . web . URLUtils . url ( 'Oauth-success' ) ;
30- ISML . renderTemplate ( 'oauth/oauthForm' , { successURL : successURL , OauthData :getTokenJSONObj , redirectCallbackUrl :redirectCallbackUrl } ) ;
31- return ;
32- }
33- else
34- {
35- var getTokenJSONObj = { } ;
36- getTokenJSONObj . clientSecret = '' ;
37- getTokenJSONObj . clientId = '' ;
38- getTokenJSONObj . shortCode = '' ;
39- getTokenJSONObj . fworganizationid = '' ;
40- getTokenJSONObj . tenant_id = '' ;
41- var successURL = dw . web . URLUtils . url ( 'Oauth-success' ) ;
42- ISML . renderTemplate ( 'oauth/oauthForm' , { successURL : successURL , OauthData :getTokenJSONObj , redirectCallbackUrl :redirectCallbackUrl } ) ;
43- return ;
44- }
45-
46- } catch ( e ) {
47- var errorMsg = {
48- status : 'failed' ,
49- message :"error has occurred " + e
50- } ;
51- ISML . renderTemplate ( 'oauth/errorMsg' , { errorMsg :errorMsg } ) ;
18+ var redirectCallbackUrl = URLUtils . https ( 'Oauth-callback' ) . toString ( ) ;
19+ redirectCallbackUrl = redirectCallbackUrl . replace ( / % 3 b / gi, ';' ) . replace ( / % 3 d / gi, '=' ) ;
20+ // Remove BM specific parameters to get clean callback URL
21+ redirectCallbackUrl = redirectCallbackUrl . replace ( / ; a p p = _ _ b m _ m e r c h a n t ; s i t e = [ ^ \/ ] + / g, '' ) ;
22+ var oauthCOObj = CustomObjectMgr . getCustomObject ( 'FireworkOauthCO' , dw . system . Site . current . ID ) ;
23+ if ( oauthCOObj != null ) {
24+ var getTokenJSONObj = { } ;
25+ getTokenJSONObj . clientSecret = oauthCOObj . custom . fireworkClientSecret ;
26+ getTokenJSONObj . clientId = oauthCOObj . custom . fireworkClientId ;
27+ getTokenJSONObj . shortCode = oauthCOObj . custom . fireworkShortCode ;
28+ getTokenJSONObj . fworganizationid = oauthCOObj . custom . fireworkOrgId ;
29+ getTokenJSONObj . tenant_id = oauthCOObj . custom . fireworkTenantId ;
30+ var successURL = dw . web . URLUtils . url ( 'Oauth-success' ) ;
31+ ISML . renderTemplate ( 'oauth/oauthForm' , { successURL : successURL , OauthData : getTokenJSONObj , redirectCallbackUrl : redirectCallbackUrl } ) ;
32+ return ;
33+ }
34+ else {
35+ var getTokenJSONObj = { } ;
36+ getTokenJSONObj . clientSecret = '' ;
37+ getTokenJSONObj . clientId = '' ;
38+ getTokenJSONObj . shortCode = '' ;
39+ getTokenJSONObj . fworganizationid = '' ;
40+ getTokenJSONObj . tenant_id = '' ;
41+ var successURL = dw . web . URLUtils . url ( 'Oauth-success' ) ;
42+ ISML . renderTemplate ( 'oauth/oauthForm' , { successURL : successURL , OauthData : getTokenJSONObj , redirectCallbackUrl : redirectCallbackUrl } ) ;
5243 return ;
5344 }
45+
46+ } catch ( e ) {
47+ var errorMsg = {
48+ status : 'failed' ,
49+ message : "error has occurred " + e
50+ } ;
51+ ISML . renderTemplate ( 'oauth/errorMsg' , { errorMsg : errorMsg } ) ;
52+ return ;
53+ }
5454 return ;
5555}
5656/**
5757 * This controller implements the business manager extension action for Oauth Token Process.
5858 *
5959 * @module controllers/success
6060 */
61- function success ( )
62- {
61+ function success ( ) {
6362 /* Local API Includes */
6463 try {
65- var oauthConfig = { } ;
66- var shortCode = request . httpParameterMap . shortcode ;
67- var fworganizationid = request . httpParameterMap . fworganizationid ;
68- var fwclientid = request . httpParameterMap . fwclientid ;
69- var fwclientsecret = request . httpParameterMap . fwclientsecret ;
70- var tenantId = request . httpParameterMap . tenantId ;
71- var oauthCOObj = CustomObjectMgr . getCustomObject ( 'FireworkOauthCO' , dw . system . Site . current . ID ) ;
72- var callbackUrl = request . getHttpProtocol ( ) + "://" + request . getHttpHost ( ) + dw . web . URLUtils . url ( 'Oauth-callback' ) ;
73- oauthConfig . shortCode = shortCode ;
74- oauthConfig . fworganizationid = fworganizationid ;
75- oauthConfig . fwclientid = fwclientid ;
76- oauthConfig . fwclientsecret = fwclientsecret ;
77- oauthConfig . tenant_id = tenantId
78- //------------get CLI access token---------------//
79- var getTokenObj = require ( '~/cartridge/scripts/oauth/tokenAPI' ) ;
80- var getTokenResponse = getTokenObj . getToken ( oauthConfig ) ;
81- var getTokenResponseJsonObj = JSON . parse ( getTokenResponse ) ;
82- if ( ! empty ( getTokenResponseJsonObj . access_token ) )
83- {
84- var tenantRegistrationObj = require ( '~/cartridge/scripts/oauth/tenantRegistrationAPI' ) ;
85- var tenantRegistrationResponse = tenantRegistrationObj . tenantRegistrationfun ( getTokenResponseJsonObj . access_token , shortCode , tenantId ) ;
86- var tenantRegistrationResponseJsonObj = JSON . parse ( tenantRegistrationResponse ) ;
87- if ( tenantRegistrationResponseJsonObj . tenantId )
88- {
89- var privateClientidRegistrationObj = require ( '~/cartridge/scripts/oauth/privateClientidRegistrationAPI' ) ;
90- var privateClientidRegistrationResponse = privateClientidRegistrationObj . privateClientidRegistrationfun ( getTokenResponseJsonObj . access_token , tenantId , fwclientid , fwclientsecret , callbackUrl , shortCode ) ;
91- var privateClientidRegistrationResponseObj = JSON . parse ( privateClientidRegistrationResponse ) ;
92- if ( privateClientidRegistrationResponseObj . clientId )
93- {
94- Transaction . begin ( ) ;
95- if ( oauthCOObj == null )
96- {
97- oauthCOObj = CustomObjectMgr . createCustomObject ( 'FireworkOauthCO' , dw . system . Site . current . ID ) ;
98- }
99- oauthCOObj . custom . fireworkClientId = fwclientid ;
100- oauthCOObj . custom . fireworkClientSecret = fwclientsecret ;
101- oauthCOObj . custom . fireworkOrgId = fworganizationid ;
102- oauthCOObj . custom . fireworkShortCode = shortCode ;
103- oauthCOObj . custom . fireworkTenantId = tenantId ;
104- oauthCOObj . custom . fireworkCliToken = getTokenResponseJsonObj . access_token ;
105- Transaction . commit ( ) ;
106- var authorizeGuestObj = require ( '~/cartridge/scripts/oauth/authorizeGuestAPI' ) ;
107- var redirectURL = authorizeGuestObj . authorizeGuestFun ( fworganizationid , callbackUrl , fwclientid , shortCode ) ;
108- response . redirect ( redirectURL ) ;
109- return ;
110- }
111- }
64+ var oauthConfig = { } ;
65+ var shortCode = request . httpParameterMap . shortcode ;
66+ var fworganizationid = request . httpParameterMap . fworganizationid ;
67+ var fwclientid = request . httpParameterMap . fwclientid ;
68+ var fwclientsecret = request . httpParameterMap . fwclientsecret ;
69+ var tenantId = request . httpParameterMap . tenantId ;
70+ var oauthCOObj = CustomObjectMgr . getCustomObject ( 'FireworkOauthCO' , dw . system . Site . current . ID ) ;
71+ var callbackUrl = URLUtils . https ( 'Oauth-callback' ) . toString ( ) ;
72+ callbackUrl = callbackUrl . replace ( / % 3 b / gi, ';' ) . replace ( / % 3 d / gi, '=' ) ;
73+ // Remove BM specific parameters to get clean callback URL
74+ callbackUrl = callbackUrl . replace ( / ; a p p = _ _ b m _ m e r c h a n t ; s i t e = [ ^ \/ ] + / g, '' ) ;
75+ oauthConfig . shortCode = shortCode ;
76+ oauthConfig . fworganizationid = fworganizationid ;
77+ oauthConfig . fwclientid = fwclientid ;
78+ oauthConfig . fwclientsecret = fwclientsecret ;
79+ oauthConfig . tenant_id = tenantId
80+ //------------get CLI access token---------------//
81+ var getTokenObj = require ( '~/cartridge/scripts/oauth/tokenAPI' ) ;
82+ var getTokenResponse = getTokenObj . getToken ( oauthConfig ) ;
83+ var getTokenResponseJsonObj = JSON . parse ( getTokenResponse ) ;
84+ if ( ! empty ( getTokenResponseJsonObj . access_token ) ) {
85+ var tenantRegistrationObj = require ( '~/cartridge/scripts/oauth/tenantRegistrationAPI' ) ;
86+ var tenantRegistrationResponse = tenantRegistrationObj . tenantRegistrationfun ( getTokenResponseJsonObj . access_token , shortCode , tenantId ) ;
87+ var tenantRegistrationResponseJsonObj = JSON . parse ( tenantRegistrationResponse ) ;
88+ if ( tenantRegistrationResponseJsonObj . tenantId ) {
89+ var privateClientidRegistrationObj = require ( '~/cartridge/scripts/oauth/privateClientidRegistrationAPI' ) ;
90+ var privateClientidRegistrationResponse = privateClientidRegistrationObj . privateClientidRegistrationfun ( getTokenResponseJsonObj . access_token , tenantId , fwclientid , fwclientsecret , callbackUrl , shortCode ) ;
91+ var privateClientidRegistrationResponseObj = JSON . parse ( privateClientidRegistrationResponse ) ;
92+ if ( privateClientidRegistrationResponseObj . clientId ) {
93+ Transaction . begin ( ) ;
94+ if ( oauthCOObj == null ) {
95+ oauthCOObj = CustomObjectMgr . createCustomObject ( 'FireworkOauthCO' , dw . system . Site . current . ID ) ;
11296 }
113- return ;
114- }
115- catch ( e ) {
116- var errorMsg = {
117- status : 'failed' ,
118- message :"error has occurred " + e
119- } ;
97+ oauthCOObj . custom . fireworkClientId = fwclientid ;
98+ oauthCOObj . custom . fireworkClientSecret = fwclientsecret ;
99+ oauthCOObj . custom . fireworkOrgId = fworganizationid ;
100+ oauthCOObj . custom . fireworkShortCode = shortCode ;
101+ oauthCOObj . custom . fireworkTenantId = tenantId ;
102+ oauthCOObj . custom . fireworkCliToken = getTokenResponseJsonObj . access_token ;
103+ Transaction . commit ( ) ;
104+ var authorizeGuestObj = require ( '~/cartridge/scripts/oauth/authorizeGuestAPI' ) ;
105+ var redirectURL = authorizeGuestObj . authorizeGuestFun ( fworganizationid , callbackUrl , fwclientid , shortCode ) ;
106+ response . redirect ( redirectURL ) ;
107+ return ;
108+ }
109+ }
120110 }
121- return ;
111+ return ;
112+ }
113+ catch ( e ) {
114+ var errorMsg = {
115+ status : 'failed' ,
116+ message : "error has occurred " + e
117+ } ;
118+ }
119+ return ;
122120}
123121/**
124122 * This controller implements the business manager extension action for Oauth Token Process.
125123 *
126124 * @module controllers/show
127125 */
128- function callback ( )
129- {
126+ function callback ( ) {
130127 /* Local API Includes */
131128 try {
132- var usid = request . httpParameterMap . usid . value ;
133- var code = request . httpParameterMap . code . value ;
134- var redirectURL = request . getHttpProtocol ( ) + "://" + request . getHttpHost ( ) + dw . web . URLUtils . url ( 'Oauth-callback' ) ;
135- var oauthCOObj = CustomObjectMgr . getCustomObject ( 'FireworkOauthCO' , dw . system . Site . current . ID ) ;
136- if ( oauthCOObj != null )
137- {
138- var getTokenJSONObj = { } ;
139- getTokenJSONObj . code = code ;
140- getTokenJSONObj . usid = usid ;
141- getTokenJSONObj . clientSecret = oauthCOObj . custom . fireworkClientSecret ;
142- getTokenJSONObj . clientId = oauthCOObj . custom . fireworkClientId ;
143- getTokenJSONObj . shortCode = oauthCOObj . custom . fireworkShortCode ;
144- getTokenJSONObj . fworganizationid = oauthCOObj . custom . fireworkOrgId ;
145- getTokenJSONObj . code_verifier = oauthCOObj . custom . fireworkCodeVerifier ;
146- getTokenJSONObj . redirectUrl = redirectURL ;
147- //----------get access token API call ------------------------//
148- var accessTokenObj = require ( '~/cartridge/scripts/oauth/getAccessTokenAPI' ) ;
149- var accessTokenResponse = accessTokenObj . accessTokenFun ( getTokenJSONObj ) ;
150- var accessTokenResponseObj = JSON . parse ( accessTokenResponse ) ;
151- var accessToken = accessTokenResponseObj . access_token ;
152- var refreshToken = accessTokenResponseObj . refresh_token ;
153- if ( accessTokenResponseObj )
154- {
155- Transaction . begin ( ) ;
156- oauthCOObj . custom . fireworkUsId = usid ;
157- oauthCOObj . custom . fireworkCode = code ;
158- oauthCOObj . custom . fireworkAccessTokenObject = accessTokenResponseObj ;
159- Transaction . commit ( ) ;
160- var FireworkCOObj = CustomObjectMgr . getCustomObject ( 'FireworkCO' , dw . system . Site . current . ID ) ;
161- if ( FireworkCOObj != null )
162- {
163- //-----------------send all data to after complete access token------------
164- var updateGraphQLForTokenDataObj = require ( '~/cartridge/scripts/oauth/updateGraphQLForTokenDataAPI' ) ;
165- var updateGraphQLForTokenDataResponse = updateGraphQLForTokenDataObj . updateGraphQLForTokenData ( ) ;
166- ISML . renderTemplate ( 'oauth/success' , { updateGraphQLForTokenDataResponse : updateGraphQLForTokenDataResponse } ) ;
167- return ;
168- }
169- else
170- {
171- ISML . renderTemplate ( 'oauth/configDashboard' ) ;
172- return ;
173- }
174- }
175-
129+ var usid = request . httpParameterMap . usid . value ;
130+ var code = request . httpParameterMap . code . value ;
131+ var redirectURL = URLUtils . https ( 'Oauth-callback' ) . toString ( ) ;
132+ redirectURL = redirectURL . replace ( / % 3 b / gi, ';' ) . replace ( / % 3 d / gi, '=' ) ;
133+ // Remove BM specific parameters to get clean callback URL
134+ redirectURL = redirectURL . replace ( / ; a p p = _ _ b m _ m e r c h a n t ; s i t e = [ ^ \/ ] + / g, '' ) ;
135+ var oauthCOObj = CustomObjectMgr . getCustomObject ( 'FireworkOauthCO' , dw . system . Site . current . ID ) ;
136+ if ( oauthCOObj != null ) {
137+ var getTokenJSONObj = { } ;
138+ getTokenJSONObj . code = code ;
139+ getTokenJSONObj . usid = usid ;
140+ getTokenJSONObj . clientSecret = oauthCOObj . custom . fireworkClientSecret ;
141+ getTokenJSONObj . clientId = oauthCOObj . custom . fireworkClientId ;
142+ getTokenJSONObj . shortCode = oauthCOObj . custom . fireworkShortCode ;
143+ getTokenJSONObj . fworganizationid = oauthCOObj . custom . fireworkOrgId ;
144+ getTokenJSONObj . code_verifier = oauthCOObj . custom . fireworkCodeVerifier ;
145+ getTokenJSONObj . redirectUrl = redirectURL ;
146+ //----------get access token API call ------------------------//
147+ var accessTokenObj = require ( '~/cartridge/scripts/oauth/getAccessTokenAPI' ) ;
148+ var accessTokenResponse = accessTokenObj . accessTokenFun ( getTokenJSONObj ) ;
149+ var accessTokenResponseObj = JSON . parse ( accessTokenResponse ) ;
150+ var accessToken = accessTokenResponseObj . access_token ;
151+ var refreshToken = accessTokenResponseObj . refresh_token ;
152+ if ( accessTokenResponseObj ) {
153+ Transaction . begin ( ) ;
154+ oauthCOObj . custom . fireworkUsId = usid ;
155+ oauthCOObj . custom . fireworkCode = code ;
156+ oauthCOObj . custom . fireworkAccessTokenObject = accessTokenResponseObj ;
157+ Transaction . commit ( ) ;
158+ var FireworkCOObj = CustomObjectMgr . getCustomObject ( 'FireworkCO' , dw . system . Site . current . ID ) ;
159+ if ( FireworkCOObj != null ) {
160+ //-----------------send all data to after complete access token------------
161+ var updateGraphQLForTokenDataObj = require ( '~/cartridge/scripts/oauth/updateGraphQLForTokenDataAPI' ) ;
162+ var updateGraphQLForTokenDataResponse = updateGraphQLForTokenDataObj . updateGraphQLForTokenData ( ) ;
163+ ISML . renderTemplate ( 'oauth/success' , { updateGraphQLForTokenDataResponse : updateGraphQLForTokenDataResponse } ) ;
164+ return ;
165+ }
166+ else {
167+ ISML . renderTemplate ( 'oauth/configDashboard' ) ;
168+ return ;
169+ }
176170 }
177- } catch ( e ) {
178- var errorMsg = {
179- status : 'failed' ,
180- message :"error has occurred " + e
181- } ;
182- ISML . renderTemplate ( 'oauth/errorMsg' , { errorMsg :errorMsg } ) ;
183- return ;
171+
184172 }
173+ } catch ( e ) {
174+ var errorMsg = {
175+ status : 'failed' ,
176+ message : "error has occurred " + e
177+ } ;
178+ ISML . renderTemplate ( 'oauth/errorMsg' , { errorMsg : errorMsg } ) ;
179+ return ;
180+ }
185181 return ;
186182}
187183exports . success = guard . ensure ( [ 'post' ] , success ) ;
0 commit comments