Files
djhackersdev_minime/src/idz/handler/loadTopTen.ts
T
2019-11-06 17:28:30 -05:00

68 lines
1.4 KiB
TypeScript

import { LoadTopTenRequest } from "../request/loadTopTen";
import {
LoadTopTenResponse,
LoadTopTenResponseCourse,
LoadTopTenResponseRow,
} from "../response/loadTopTen";
import { Repositories, TopTenResult } from "../repo";
export async function loadTopTen(
w: Repositories,
req: LoadTopTenRequest
): Promise<LoadTopTenResponse> {
const courses = new Array<LoadTopTenResponseCourse>();
for (const selector of req.selectors) {
if (courses.length >= 3) {
break;
}
const { routeNo, minTimestamp } = selector;
let src: TopTenResult[];
if (req.teamId !== undefined) {
src = []; // TODO
} else {
src = await w.timeAttack().loadTopTen(routeNo, minTimestamp);
}
if (src.length === 0) {
continue;
}
const dest = new Array<LoadTopTenResponseRow>();
for (const srcItem of src) {
dest.push({
field_00: 0,
field_0E: false,
field_0F: false,
field_10: 0,
driverName: srcItem.driverName,
teamName: process.env.TEAM_NAME || "",
shopName: process.env.SHOP_NAME || "",
field_74: 0,
field_78: 0,
field_7C: 0,
field_7D: 0,
ta: srcItem.ta,
});
}
courses.push({
routeNo,
field_02: 0,
rows: dest,
});
}
console.log(JSON.stringify(courses));
return {
type: "load_top_ten_res",
courseCount: courses.length,
courses: courses,
trailers: [],
};
}