generated from VLADIMIR/template_frontend
fix
This commit is contained in:
@@ -5,13 +5,15 @@ import { useRoute } from 'vue-router'
|
||||
|
||||
import { getAuthClient } from '@/api/auth_client'
|
||||
import type { Game, ScreenState, TeamResult } from '@/api/generated/crabs/evening_detective_server'
|
||||
import { buildClient } from '@/api/generated/crabs/evening_detective_server/client'
|
||||
import HeaderMenu from '@/components/HeaderMenu.vue'
|
||||
import { useSimplePolling } from '@/composables/useSimplePolling'
|
||||
import { applicationFileURL } from '@/utils/application'
|
||||
import { formatGameDateTime } from '@/utils/datetime'
|
||||
|
||||
const sessionKey = 'evening-detective-screen-session'
|
||||
const client = getAuthClient()
|
||||
const screenClient = buildClient()
|
||||
const authClient = getAuthClient()
|
||||
const message = useMessage()
|
||||
const route = useRoute()
|
||||
|
||||
@@ -100,28 +102,36 @@ function readSession() {
|
||||
}
|
||||
|
||||
async function createSession() {
|
||||
const res = await client.CreateScreenSession({})
|
||||
const res = await screenClient.CreateScreenSession({})
|
||||
if (!res.screenID || !res.accessToken) throw new Error('Не удалось создать сессию экрана')
|
||||
screenId.value = res.screenID
|
||||
accessToken.value = res.accessToken
|
||||
saveSession()
|
||||
}
|
||||
|
||||
async function loadState() {
|
||||
async function loadState(recreateOnUnauthorized = true) {
|
||||
if (!screenId.value || !accessToken.value) return
|
||||
try {
|
||||
const res = await client.GetScreenState({ screenID: screenId.value, accessToken: accessToken.value })
|
||||
const res = await screenClient.GetScreenState({ screenID: screenId.value, accessToken: accessToken.value })
|
||||
state.value = res.state
|
||||
syncTimer(state.value)
|
||||
if (state.value?.gameID && state.value.mode === 'SCREEN_MODE_RESULTS') await loadResults()
|
||||
} catch (err) {
|
||||
if (recreateOnUnauthorized && err instanceof Error && err.message === 'unauthorized') {
|
||||
sessionStorage.removeItem(sessionKey)
|
||||
screenId.value = ''
|
||||
accessToken.value = ''
|
||||
await createSession()
|
||||
await loadState(false)
|
||||
return
|
||||
}
|
||||
message.error(err instanceof Error ? err.message : 'Не удалось получить состояние экрана')
|
||||
}
|
||||
}
|
||||
|
||||
async function loadResults() {
|
||||
if (!screenId.value || !accessToken.value) return
|
||||
const res = await client.GetScreenResults({ screenID: screenId.value, accessToken: accessToken.value })
|
||||
const res = await screenClient.GetScreenResults({ screenID: screenId.value, accessToken: accessToken.value })
|
||||
resultQuestions.value = res.questions || []
|
||||
resultTeams.value = res.teams || []
|
||||
if (!resultsScrollStarted) {
|
||||
@@ -143,7 +153,7 @@ async function loadResults() {
|
||||
|
||||
async function loadGames() {
|
||||
try {
|
||||
const res = await client.GetGames({})
|
||||
const res = await authClient.GetGames({})
|
||||
games.value = res.games || []
|
||||
} catch (err) {
|
||||
message.error(err instanceof Error ? err.message : 'Не удалось загрузить игры')
|
||||
@@ -182,7 +192,7 @@ async function bind() {
|
||||
if (!selectedGameId.value || !route.query.screenID || !route.query.accessToken) return
|
||||
binding.value = true
|
||||
try {
|
||||
await client.BindScreen({
|
||||
await authClient.BindScreen({
|
||||
screenID: String(route.query.screenID),
|
||||
accessToken: String(route.query.accessToken),
|
||||
gameID: selectedGameId.value,
|
||||
|
||||
Reference in New Issue
Block a user