23 lines
No EOL
714 B
JavaScript
23 lines
No EOL
714 B
JavaScript
import {getItems} from "../utils";
|
|
import {getClosest} from "../../../../utils/levenshtein";
|
|
import {addResultToRedis, getResultFromRedis} from "../../../../utils/redis";
|
|
|
|
export default async function itemHandler({query: {id}}, res) {
|
|
|
|
let items = JSON.parse(await getResultFromRedis('item-all'));
|
|
if (!items) {
|
|
items = await getItems();
|
|
addResultToRedis('item-all', JSON.stringify(items)).catch(console.error)
|
|
}
|
|
|
|
const closestItems = []
|
|
getClosest(id, items).forEach(a => {
|
|
closestItems.push(items[a.name])
|
|
})
|
|
|
|
if (closestItems) {
|
|
res.status(200).json(closestItems);
|
|
} else {
|
|
res.status(404).json({message: `Item ${id} not found`});
|
|
}
|
|
} |