| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import { type GameLaunchEnvelope } from './gameLaunch'
- import { type BackendLaunchResult } from './backendApi'
- export function adaptBackendLaunchResultToEnvelope(result: BackendLaunchResult): GameLaunchEnvelope {
- const launchVariantRouteCode = result.launch.variant
- ? (result.launch.variant.routeCode || null)
- : null
- return {
- config: {
- configUrl: result.launch.config.configUrl,
- configLabel: result.launch.config.configLabel,
- configChecksumSha256: result.launch.config.configChecksumSha256 || null,
- releaseId: result.launch.config.releaseId,
- routeCode: result.launch.config.routeCode || null,
- },
- business: {
- source: result.launch.business.source === 'direct-event' ? 'direct-event' : 'custom',
- eventId: result.launch.business.eventId,
- sessionId: result.launch.business.sessionId,
- sessionToken: result.launch.business.sessionToken,
- sessionTokenExpiresAt: result.launch.business.sessionTokenExpiresAt,
- },
- resolvedRelease: result.launch.resolvedRelease
- ? {
- launchMode: result.launch.resolvedRelease.launchMode || null,
- source: result.launch.resolvedRelease.source || null,
- eventId: result.launch.resolvedRelease.eventId || null,
- releaseId: result.launch.resolvedRelease.releaseId || null,
- configLabel: result.launch.resolvedRelease.configLabel || null,
- manifestUrl: result.launch.resolvedRelease.manifestUrl || null,
- manifestChecksumSha256: result.launch.resolvedRelease.manifestChecksumSha256 || null,
- routeCode: result.launch.resolvedRelease.routeCode || null,
- }
- : null,
- variant: result.launch.variant
- ? {
- variantId: result.launch.variant.id,
- variantName: result.launch.variant.name,
- routeCode: result.launch.variant.routeCode || result.launch.config.routeCode || result.launch.business.routeCode || null,
- assignmentMode: result.launch.variant.assignmentMode || null,
- }
- : (result.launch.config.routeCode || result.launch.business.routeCode)
- ? {
- routeCode: result.launch.config.routeCode || result.launch.business.routeCode || null,
- }
- : null,
- runtime: result.launch.runtime
- ? {
- runtimeBindingId: result.launch.runtime.runtimeBindingId || null,
- placeId: result.launch.runtime.placeId || null,
- placeName: result.launch.runtime.placeName || null,
- mapId: result.launch.runtime.mapId || null,
- mapName: result.launch.runtime.mapName || null,
- tileReleaseId: result.launch.runtime.tileReleaseId || null,
- courseSetId: result.launch.runtime.courseSetId || null,
- courseVariantId: result.launch.runtime.courseVariantId || null,
- routeCode: result.launch.runtime.routeCode || launchVariantRouteCode || result.launch.config.routeCode || result.launch.business.routeCode || null,
- }
- : null,
- presentation: result.launch.presentation
- ? {
- presentationId: result.launch.presentation.presentationId || null,
- templateKey: result.launch.presentation.templateKey || null,
- version: result.launch.presentation.version || null,
- }
- : null,
- contentBundle: result.launch.contentBundle
- ? {
- bundleId: result.launch.contentBundle.bundleId || null,
- bundleType: result.launch.contentBundle.bundleType || null,
- version: result.launch.contentBundle.version || null,
- }
- : null,
- }
- }
|