Skip to content

Commit

Permalink
Added trackError parameter for presence middleware
Browse files Browse the repository at this point in the history
  • Loading branch information
alexkonst committed Oct 11, 2023
1 parent bfc811e commit fd708dd
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 8 deletions.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ulms/api-clients",
"version": "6.6.1",
"version": "6.7.0",
"description": "JavaScript API clients for ULMS platform",
"keywords": [],
"homepage": "https://github.com/foxford/ulms-api-clients-js#readme",
Expand Down
18 changes: 13 additions & 5 deletions src/redux/middleware.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ const messageHandler = ({ dispatch }, message) => {

async function startPresenceFlow(
{ dispatch },
{ presenceWs, trackEvent },
{ presenceWs, trackError, trackEvent },
classroomId,
agentLabel = 'http'
) {
Expand Down Expand Up @@ -134,6 +134,10 @@ async function startPresenceFlow(
? { message: error.message, name: error.name }
: null

if (trackError) {
trackError(error)
}

if (trackEvent) {
trackEvent('Debug', 'Presence.Error', 'v1', undefined, {
error: errorPayload,
Expand Down Expand Up @@ -172,7 +176,7 @@ async function startPresenceFlow(

async function getPresenceAgentList(
{ dispatch, getState },
{ presence },
{ presence, trackError },
classroomId
) {
const agentBackoff = new Backoff()
Expand Down Expand Up @@ -220,6 +224,10 @@ async function getPresenceAgentList(
} catch (error) {
debug('[agent] catch', error)

if (trackError) {
trackError(error)
}

const { status } = error
const isErrorUnrecoverable = !!status
const retryLimitExceeded = retryCount === RETRY_LIMIT
Expand Down Expand Up @@ -332,7 +340,7 @@ async function getPresenceAgentList(
}

const createPresenceMiddleware =
({ presence, presenceWs, trackEvent }) =>
({ presence, presenceWs, trackError, trackEvent }) =>
({ getState, dispatch }) => {
const boundedMessageHandler = messageHandler.bind(undefined, {
dispatch,
Expand All @@ -344,15 +352,15 @@ const createPresenceMiddleware =
dispatch,
getState,
},
{ presence, presenceWs, trackEvent }
{ presence, presenceWs, trackError, trackEvent }
)
const boundedGetPresenceAgentList = getPresenceAgentList.bind(
undefined,
{
dispatch,
getState,
},
{ presence, presenceWs }
{ presence, presenceWs, trackError, trackEvent }
)

presenceWs.on('event', boundedMessageHandler)
Expand Down

0 comments on commit fd708dd

Please sign in to comment.