UNPKG

@opengis/fastify-table

Version:

core-plugins

33 lines (32 loc) 1.18 kB
import { customTokens, userTokens, handlebarsSync, setOpt, getOpt, config, } from "../../../../utils.js"; export default async function userTokensAPI({ params, user = {}, }, reply) { if (!user?.uid) { return reply.status(403).send("access restricted: user"); } if (!params?.token) { return reply.status(400).send("not enough params: token"); } if (!config.redis) { return reply.status(500).send("empty redis"); } if (!customTokens[params.token]) { return reply.status(404).send("token not found"); } // return from cache if (userTokens[user.uid]?.[params.token]) { const opt = await getOpt(userTokens[user.uid][params.token], user.uid); if (opt) return userTokens[user.uid][params.token]; } const token = setOpt({ ...customTokens[params.token], query: handlebarsSync.compile(customTokens[params.token]?.query || "true")({ user, uid: user.uid }), }, user.uid); // first api call from user if (!userTokens[user.uid]) { userTokens[user.uid] = {}; } // assign token userTokens[user.uid][params.token] = token; return token; }