34 lines
1.4 KiB
TypeScript
34 lines
1.4 KiB
TypeScript
import { type GameLaunchEnvelope } from './gameLaunch'
|
|
import { type BackendLaunchResult } from './backendApi'
|
|
|
|
export function adaptBackendLaunchResultToEnvelope(result: BackendLaunchResult): GameLaunchEnvelope {
|
|
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,
|
|
},
|
|
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,
|
|
}
|
|
}
|