Skip to content

Commit 3f2997f

Browse files
committed
WIP - auth over websocket
1 parent 50702fd commit 3f2997f

File tree

1 file changed

+30
-6
lines changed

1 file changed

+30
-6
lines changed

src/filing/actions/listenForProgress.js

+30-6
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
MACRO_EDITS,
1313
UPLOADED
1414
} from '../constants/statusCodes.js'
15+
import * as AccessToken from '../../common/api/AccessToken.js'
1516

1617
// Extract completion percentage
1718
export const parseProgress = string => {
@@ -34,21 +35,28 @@ export default function listenForProgress() {
3435
dispatch(receiveError(json))
3536
throw new Error(json && `${json.status}: ${json.statusText}`)
3637
}
38+
console.log('- Getting latest submission JSON')
3739
return dispatch(receiveSubmission(json))
3840
})
3941
})
4042
.then((json) => {
41-
if (!json) return
43+
if (!json) {
44+
console.warn('-- No submission JSON found, skipping WS connection')
45+
46+
return
47+
}
4248

4349
const { status, id } = json
4450
const { lei, period, sequenceNumber } = id
4551
const { year, quarter } = period
4652
const { code } = status
4753

4854
if (code >= UPLOADED) {
55+
console.log('- Opening websocket to listen for progress...')
56+
4957
// Open a websocket and listen for updates
5058
const wsBaseUrl = process.env.REACT_APP_ENVIRONMENT === 'CI'
51-
? `${window.location.hostname}:8080`
59+
? `${window.location.hostname}:8080` // `IP-ADDRESS:8080`
5260
: `${window.location.host}/v2/filing`
5361

5462
const socketType = window.location.protocol == 'https:' ? 'wss' : 'ws'
@@ -57,11 +65,27 @@ export default function listenForProgress() {
5765
? `/institutions/${lei}/filings/${year}/quarter/${quarter}/submissions/${sequenceNumber}/progress`
5866
: `/institutions/${lei}/filings/${year}/submissions/${sequenceNumber}/progress`
5967

60-
let socket = new WebSocket(`${socketType}://${wsBaseUrl}${wsProgressUrl}`)
68+
let socket
69+
70+
try {
71+
console.log(`-- Attempting connection to ${socketType}://${wsBaseUrl}${wsProgressUrl}`)
72+
socket = new WebSocket(`${socketType}://${wsBaseUrl}${wsProgressUrl}`)
73+
} catch (e) {
74+
console.log(`--- Connection to ${socketType}://${wsBaseUrl}${wsProgressUrl} failed!`)
75+
error(e)
76+
console.log('---')
77+
}
6178

6279
socket.onopen = (event) => {
63-
console.log('>>> Socket open! Listening for Progress...')
80+
console.log('-- Socket open! Sending Bearer token and then listening for Progress...')
6481
dispatch(requestProcessingProgress())
82+
socket.send(
83+
JSON.stringify({
84+
headers: {
85+
Authorization: 'Bearer ' + AccessToken.get(),
86+
},
87+
})
88+
)
6589
}
6690

6791
// Listen for messages
@@ -126,13 +150,13 @@ export default function listenForProgress() {
126150
else {
127151
// e.g. server process killed or network down
128152
// event.code is usually 1006 in this case
129-
console.log('[close] Connection died')
153+
console.log('[socket onclose] Connection died', event)
130154
}
131155
}
132156

133157
// TODO: What to do on websocket error?
134158
socket.onerror = function (error) {
135-
console.log(`[error] ${error.message}`)
159+
console.log(`[socket onerror] ${error.message}`, error)
136160
}
137161
}
138162
else if (

0 commit comments

Comments
 (0)