2024-01-04 20:49:51 -05:00
|
|
|
import { isIdNan } from "@server/middlewareButNotReally";
|
|
|
|
import { Story } from "@models/stories";
|
|
|
|
|
|
|
|
export default eventHandler(async (ev) => {
|
|
|
|
const id = isIdNan(ev);
|
2024-11-11 18:42:29 -05:00
|
|
|
const ip = getRequestIP(ev, { xForwardedFor: true });
|
2024-01-04 20:49:51 -05:00
|
|
|
const storage = useStorage(`/story/${id}/viewMap`);
|
|
|
|
if (ev.context.currentUser) {
|
|
|
|
if (!(await storage.hasItem(`loggedIn/${ev.context.currentUser._id}`))) {
|
|
|
|
await Story.findByIdAndUpdate(id, {
|
|
|
|
$inc: {
|
|
|
|
views: 1,
|
|
|
|
},
|
|
|
|
});
|
|
|
|
}
|
|
|
|
await storage.setItem(`loggedIn/${ev.context.currentUser._id}`, Date.now());
|
2024-11-11 18:42:29 -05:00
|
|
|
} else if (!!ip) {
|
2024-01-04 20:49:51 -05:00
|
|
|
if (!(await storage.hasItem(`/loggedIn/${ip}`))) {
|
|
|
|
await Story.findByIdAndUpdate(id, {
|
|
|
|
$inc: {
|
|
|
|
views: 1,
|
|
|
|
},
|
|
|
|
});
|
|
|
|
}
|
|
|
|
await storage.setItem(ip, Date.now());
|
|
|
|
}
|
|
|
|
return {};
|
|
|
|
});
|