// Declare a route module.exports = function (fastify, opts, done) { const pb = opts.pb; const serialize = opts.serialize; fastify.post('/update-watchlist', async (request, reply) => { const data = request.body; const userId = data?.userId; const ticker = data?.ticker; const watchListId = data?.watchListId; let output; try { const watchList = await pb.collection("watchlist").getOne(watchListId); if (watchList?.ticker?.includes(ticker)) { // Remove ticker from the watchlist. const newTickerList = watchList?.ticker.filter(item => item !== ticker); output = await pb.collection("watchlist").update(watchListId, { ticker: newTickerList }); } else { // Add ticker to the watchlist. const newTickerList = [...watchList?.ticker, ticker]; output = await pb.collection("watchlist").update(watchListId, { ticker: newTickerList }); } } catch(e) { //console.log(e) output = await pb.collection("watchlist").create(serialize({'user': userId, 'ticker': JSON.stringify([ticker]), 'title': 'Favorites' })); } reply.send({ items: output }) }); done(); };