Skip to content

Commit a7333eb

Browse files
committed
Update stuff
1 parent a8ba256 commit a7333eb

File tree

4 files changed

+12
-2
lines changed

4 files changed

+12
-2
lines changed

client/src/routes/contests/winners.html

+5-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ <h2>{{contest.name}} Winners</h2>
1717
{{#each sorted as score, index}}
1818
<tr>
1919
<td>{{index + 1}}</td>
20-
<td><GithubAvatar id="{{score.user}}" size="{{index < 3 ? 50 : 30}}" rounded/> {{score.name}}</td>
20+
<td><a class="entry-link" href="/entry/{{score.id}}"><GithubAvatar id="{{score.user}}" size="{{index < 3 ? 50 : 30}}" rounded/> {{score.name}}</a></td>
2121
<td>{{score.score}}</td>
2222
</tr>
2323
{{/each}}
@@ -78,6 +78,10 @@ <h2>{{contest.name}} Winners</h2>
7878
vertical-align: middle;
7979
margin: 0 12px !important;
8080
}
81+
82+
.entry-link {
83+
text-decoration: none;
84+
}
8185
</style>
8286

8387
<script>

server/src/cache/contest.ts

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { client } from './connect';
22
import { getContestScores as getDBScores } from '../data/contests';
33
import { getUserName } from './user';
4+
import { hash } from '../utils/ids';
45

56
export function getContestScores(contest: number): Promise<any> {
67
return new Promise((resolve, reject) => {
@@ -15,6 +16,7 @@ export function getContestScores(contest: number): Promise<any> {
1516
.then(scores => Promise.all(scores.map(async score => {
1617
score.name = await getUserName(score.github_id);
1718
score.score = +score.score.toFixed(1);
19+
score.id = hash(<number>score.id);
1820
return score;
1921
})))
2022
.then(scores => {

server/src/data/contests.ts

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export interface ScoredEntry extends ContestEntry {
2222
}
2323

2424
export interface ContestScore {
25+
id: number | string;
2526
user: number;
2627
score: number;
2728
github_id: number;

server/src/routes/pages.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Router, Request, Response } from 'express';
22
import { readFileSync } from 'fs';
33
import { join } from 'path';
4-
import { wrap } from './utils';
4+
import { wrap, RouteError } from './utils';
55
import { getUserById, UserAttributes, getTrophies, getBasicUserById } from '../data/users';
66
import { getUserName } from '../cache/user';
77
import { getAllContests, getContestFromURL, getEntryAndScores, getFeedback, getContestFromEntry, getUserFromEntry, ScoredEntry } from '../data/contests';
@@ -182,6 +182,9 @@ function registerRoute(name: string, routes: string[]) {
182182
feedback.reviewer = hash(<number>feedback.reviewer);
183183
return feedback;
184184
});
185+
if (state.feedback.length === 0) {
186+
throw new RouteError('No such entry.');
187+
}
185188
state.contest = await getContestFromEntry(id);
186189
const theUser: UserAttributes = await getUserFromEntry(id);
187190
state.username = await getUserName(theUser.github_id);

0 commit comments

Comments
 (0)