* feat: web push notifications feature * Revert yarn.lock changes * added new env variables requirement in .env.example * moved useNotifications hook in packages/lib/hooks * fix: bug * use i18n * chore: move to new file * chore: add yarn.lock * Update .env.example Co-authored-by: Amit Sharma <74371312+Amit91848@users.noreply.github.com> * chore: add instruction for brave browser * fix: tooltip * chore: use enum * chore * small update --------- Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Co-authored-by: Udit Takkar <udit222001@gmail.com> Co-authored-by: Peer Richelsen <peer@cal.com> Co-authored-by: Amit Sharma <74371312+Amit91848@users.noreply.github.com> Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> Co-authored-by: unknown <adhabal2002@gmail.com> Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
31 lines
861 B
TypeScript
31 lines
861 B
TypeScript
import prisma from "@calcom/prisma";
|
|
import type { TrpcSessionUser } from "@calcom/trpc/server/trpc";
|
|
|
|
import type { TAddNotificationsSubscriptionInputSchema } from "./addNotificationsSubscription.schema";
|
|
|
|
type AddSecondaryEmailOptions = {
|
|
ctx: {
|
|
user: NonNullable<TrpcSessionUser>;
|
|
};
|
|
input: TAddNotificationsSubscriptionInputSchema;
|
|
};
|
|
|
|
export const addNotificationsSubscriptionHandler = async ({ ctx, input }: AddSecondaryEmailOptions) => {
|
|
const { user } = ctx;
|
|
const { subscription } = input;
|
|
|
|
const existingSubscription = await prisma.notificationsSubscriptions.findFirst({
|
|
where: { userId: user.id, subscription },
|
|
});
|
|
|
|
if (!existingSubscription) {
|
|
await prisma.notificationsSubscriptions.create({
|
|
data: { userId: user.id, subscription },
|
|
});
|
|
}
|
|
|
|
return {
|
|
message: "Subscription added successfully",
|
|
};
|
|
};
|