plane/apps/app/pages/api/track-event.ts

39 lines
925 B
TypeScript
Raw Normal View History

import type { NextApiRequest, NextApiResponse } from "next";
// jitsu
import { createClient } from "@jitsu/nextjs";
import { convertCookieStringToObject } from "lib/cookie";
const jitsu = createClient({
key: process.env.TRACKER_ACCESS_KEY || "",
tracking_host: "https://t.jitsu.com",
});
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
const { eventName, user, extra } = req.body;
if (!eventName) {
return res.status(400).json({ message: "Bad request" });
}
if (!user) return res.status(401).json({ message: "Unauthorized" });
// TODO: cache user info
jitsu
.id({
id: user.id,
email: user.email,
first_name: user.first_name,
last_name: user.last_name,
display_name: user?.display_name,
})
.then(() => {
jitsu.track(eventName, {
...extra,
});
});
res.status(200).json({ message: "success" });
}