Skip to content

Commit bed5fdd

Browse files
committed
Fix showing Checkpoint Screening to Checkpoint Screener
1 parent c0041f7 commit bed5fdd

File tree

1 file changed

+56
-11
lines changed

1 file changed

+56
-11
lines changed

src/apps/review/src/lib/hooks/useFetchChallengeRelativeDatas.ts

Lines changed: 56 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,52 @@ import {
1212
fetchAllResourceRoles,
1313
fetchChallengeResouces,
1414
} from '../services/resources.service'
15-
import { BackendResourceRole, BackendSubmission, ChallengeRealtiveInfosMapping } from '../models'
1615
import { fetchSubmissions } from '../services'
16+
import { BackendResourceRole, BackendSubmission, ChallengeRealtiveInfosMapping } from '../models'
17+
18+
const FALLBACK_RESOURCE_ROLES: BackendResourceRole[] = [
19+
{
20+
fullReadAccess: false,
21+
fullWriteAccess: false,
22+
id: 'fd672cca-556e-4d16-b0a2-718218edd412',
23+
isActive: true,
24+
legacyId: 19,
25+
name: 'Checkpoint Screener',
26+
selfObtainable: false,
27+
},
28+
{
29+
fullReadAccess: true,
30+
fullWriteAccess: false,
31+
id: '3970272b-85b4-48d8-8439-672b4f6031bd',
32+
isActive: true,
33+
legacyId: 20,
34+
name: 'Checkpoint Reviewer',
35+
selfObtainable: false,
36+
},
37+
]
38+
39+
const ensureResourceRoleMapping = (
40+
mapping: { [key: string]: BackendResourceRole } | undefined,
41+
): { [key: string]: BackendResourceRole } => {
42+
const base = { ...(mapping ?? {}) }
43+
44+
FALLBACK_RESOURCE_ROLES.forEach(role => {
45+
const existing = base[role.id]
46+
if (!existing) {
47+
base[role.id] = role
48+
return
49+
}
50+
51+
if (!existing.name) {
52+
base[role.id] = {
53+
...existing,
54+
name: role.name,
55+
}
56+
}
57+
})
58+
59+
return base
60+
}
1761

1862
export interface useFetchChallengeRelativeDatasProps {
1963
challengeRelativeInfosMapping: ChallengeRealtiveInfosMapping // from challenge id to list of my role
@@ -57,20 +101,21 @@ export function useFetchChallengeRelativeDatas(
57101
setResourceRoleReviewer(find(results.data, {
58102
name: 'Reviewer',
59103
}))
60-
setResourceRoleMapping(
61-
reduce(
62-
results.data,
63-
(mappingResult, resourceRole: BackendResourceRole) => ({
64-
...mappingResult,
65-
[resourceRole.id]: resourceRole,
66-
}),
67-
{},
68-
),
69-
)
104+
const mapping = ensureResourceRoleMapping(reduce(
105+
results.data,
106+
(mappingResult, resourceRole: BackendResourceRole) => ({
107+
...mappingResult,
108+
[resourceRole.id]: resourceRole,
109+
}),
110+
{},
111+
))
112+
113+
setResourceRoleMapping(mapping)
70114
setIsLoadingResourceRoles(false)
71115
})
72116
.catch(e => {
73117
handleError(e)
118+
setResourceRoleMapping(current => ensureResourceRoleMapping(current))
74119
setIsLoadingResourceRoles(false)
75120
})
76121
})

0 commit comments

Comments
 (0)