23 lines
747 B
JavaScript
23 lines
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`});
|
||
|
}
|
||
|
}
|