23 lines
No EOL
747 B
JavaScript
23 lines
No EOL
747 B
JavaScript
import {getWeapons} from "../utils";
|
|
import {getClosest} from "../../../../utils/levenshtein";
|
|
import {addResultToRedis, getResultFromRedis} from "../../../../utils/redis";
|
|
|
|
export default async function weaponsHandler({query: {id}}, res) {
|
|
|
|
let weapons = JSON.parse(await getResultFromRedis('weapon-all'));
|
|
if (!weapons) {
|
|
weapons = await getWeapons();
|
|
addResultToRedis('weapon-all', JSON.stringify(weapons)).catch(console.error)
|
|
}
|
|
|
|
const closestWeapons = []
|
|
getClosest(id, weapons).forEach(w => {
|
|
closestWeapons.push(weapons[w.name])
|
|
})
|
|
|
|
if (closestWeapons) {
|
|
res.status(200).json(closestWeapons);
|
|
} else {
|
|
res.status(404).json({message: `Weapon ${id} not found`});
|
|
}
|
|
} |