Skip to content

Commit fd0a58e

Browse files
committed
feat: Add detailed debug logging to isDownloadFlow method for improved traceability
1 parent eb12774 commit fd0a58e

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

src/app/app.component.ts

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,50 +65,75 @@ export class AppComponent implements OnInit {
6565
* - Any URL with state param containing download: true (OAuth return)
6666
*/
6767
private isDownloadFlow(url: string): boolean {
68+
// eslint-disable-next-line no-console
69+
console.debug('[AppComponent] isDownloadFlow called with url:', url);
70+
// eslint-disable-next-line no-console
71+
console.debug('[AppComponent] window.location.href:', window.location.href);
72+
6873
// Direct download page
6974
if (url.includes('/download')) {
75+
// eslint-disable-next-line no-console
76+
console.debug('[AppComponent] URL contains /download, returning true');
7077
return true;
7178
}
7279

7380
// Parse query parameters from the URL
7481
const queryIndex = url.indexOf('?');
82+
// eslint-disable-next-line no-console
83+
console.debug('[AppComponent] queryIndex:', queryIndex);
7584
if (queryIndex === -1) {
85+
// eslint-disable-next-line no-console
86+
console.debug('[AppComponent] No query string found, returning false');
7687
return false;
7788
}
7889

7990
const queryString = url.substring(queryIndex + 1);
91+
// eslint-disable-next-line no-console
92+
console.debug('[AppComponent] queryString:', queryString);
8093
const params = new URLSearchParams(queryString);
8194

8295
// Check callback param for downloadId (Dataverse Globus integration callback)
8396
const callback = params.get('callback');
97+
// eslint-disable-next-line no-console
98+
console.debug('[AppComponent] callback param:', callback);
8499
if (callback) {
85100
try {
86101
const decodedCallback = atob(callback);
102+
// eslint-disable-next-line no-console
103+
console.debug('[AppComponent] decodedCallback:', decodedCallback);
87104
if (decodedCallback.includes('downloadId=')) {
88105
// eslint-disable-next-line no-console
89106
console.debug('[AppComponent] Download flow detected via callback with downloadId');
90107
return true;
91108
}
92-
} catch {
93-
// Invalid base64, not a download callback
109+
} catch (e) {
110+
// eslint-disable-next-line no-console
111+
console.debug('[AppComponent] Failed to decode callback as base64:', e);
94112
}
95113
}
96114

97115
// Check state param for download flag (OAuth return)
98116
const state = params.get('state');
117+
// eslint-disable-next-line no-console
118+
console.debug('[AppComponent] state param:', state);
99119
if (state) {
100120
try {
101121
const loginState = JSON.parse(state);
122+
// eslint-disable-next-line no-console
123+
console.debug('[AppComponent] parsed loginState:', loginState);
102124
if (loginState.download) {
103125
// eslint-disable-next-line no-console
104126
console.debug('[AppComponent] Download flow detected via state.download flag');
105127
return true;
106128
}
107-
} catch {
108-
// Invalid JSON, not a valid state
129+
} catch (e) {
130+
// eslint-disable-next-line no-console
131+
console.debug('[AppComponent] Failed to parse state as JSON:', e);
109132
}
110133
}
111134

135+
// eslint-disable-next-line no-console
136+
console.debug('[AppComponent] No download flow detected, returning false');
112137
return false;
113138
}
114139

0 commit comments

Comments
 (0)