MCPcopy Create free account
hub / github.com/CommE2E/comm / fetchViewerForSocket

Function fetchViewerForSocket

keyserver/src/session/cookies.js:380–428  ·  view source on GitHub ↗
(
  req: $Request,
  clientMessage: InitialClientSocketMessage,
)

Source from the content-addressed store, hash-verified

378}
379
380async function fetchViewerForSocket(
381 req: $Request,
382 clientMessage: InitialClientSocketMessage,
383): Promise<Viewer> {
384 assertSecureRequest(req);
385 const { sessionIdentification } = clientMessage.payload;
386 const { sessionID } = sessionIdentification;
387 const sessionParameterInfo = {
388 isSocket: true,
389 sessionID,
390 sessionIdentifierType:
391 sessionID !== undefined
392 ? sessionIdentifierTypes.BODY_SESSION_ID
393 : sessionIdentifierTypes.COOKIE_ID,
394 ipAddress: getRequestIPAddress(req),
395 userAgent: req.get('User-Agent'),
396 };
397
398 const result = await fetchViewerFromRequestBody(
399 clientMessage.payload.sessionIdentification,
400 sessionParameterInfo,
401 );
402 if (result.type === 'valid') {
403 return result.viewer;
404 }
405
406 const anonymousViewerDataPromise: Promise<AnonymousViewerData> =
407 (async () => {
408 const platformDetails =
409 result.type === 'invalidated' ? result.platformDetails : null;
410 const deviceToken =
411 result.type === 'invalidated' ? result.deviceToken : null;
412 return await createNewAnonymousCookie({
413 platformDetails,
414 deviceToken,
415 });
416 })();
417 const deleteCookiePromise = (async () => {
418 if (result.type === 'invalidated') {
419 await deleteCookie(result.cookieID);
420 }
421 })();
422 const [anonymousViewerData] = await Promise.all([
423 anonymousViewerDataPromise,
424 deleteCookiePromise,
425 ]);
426
427 return createViewerForInvalidFetchViewerResult(result, anonymousViewerData);
428}
429
430async function handleFetchViewerResult(
431 result: FetchViewerResult,

Callers 1

SocketClass · 0.90

Calls 7

assertSecureRequestFunction · 0.90
deleteCookieFunction · 0.90
getRequestIPAddressFunction · 0.85
createNewAnonymousCookieFunction · 0.85
getMethod · 0.65

Tested by

no test coverage detected