From ef2d5cdf0ab8238974e4c0ec125c86e0aa36b799 Mon Sep 17 00:00:00 2001 From: Vijesh Shetty Date: Wed, 29 May 2024 14:04:15 +0530 Subject: [PATCH] refactoring code --- lib/actions/createPublicUrl.ts | 12 ++++----- lib/services/privateLinkManager.ts | 43 ++++++++++++++++++++++++------ 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/lib/actions/createPublicUrl.ts b/lib/actions/createPublicUrl.ts index 5e3e02a..22763b5 100644 --- a/lib/actions/createPublicUrl.ts +++ b/lib/actions/createPublicUrl.ts @@ -5,21 +5,20 @@ import { invokeRedis } from "../services/redisPublicGenerate"; import { urlSchema } from "../zod/url"; const createPublicUrl = async (formData: FormData) => { - const longUrl: any = formData.get("long_url"); + const longUrl: string = formData.get("long_url") as string; - const errors = urlSchema.safeParse({ + const validation = urlSchema.safeParse({ long_url: longUrl, }); - if (!errors.success) { + if (!validation.success) { return { - shortUrl : "", status: HTTP_STATUS.BAD_REQUEST }; } try { - const res = await invokeRedis(longUrl); + const res:string = await invokeRedis(longUrl); return { shortUrl : res, status : HTTP_STATUS.OK @@ -27,9 +26,8 @@ const createPublicUrl = async (formData: FormData) => { ; } catch (e) { return { - shortUrl : "", status : HTTP_STATUS.INTERNAL_SERVER_ERROR - }; + } } }; diff --git a/lib/services/privateLinkManager.ts b/lib/services/privateLinkManager.ts index a867be3..f30d96f 100644 --- a/lib/services/privateLinkManager.ts +++ b/lib/services/privateLinkManager.ts @@ -8,10 +8,10 @@ import authOptions from "@/lib/authOptions"; import validateURLCreateReq from "@/lib/validations/url_create"; import PrismaClientManager from "@/lib/services/pgConnect"; import { HTTP_STATUS } from "@/lib/constants"; +import { linkType } from "@/interfaces/types"; const alphabetOnlySchema = z.string().regex(/^[a-zA-Z]+$/); - export async function createPrivateLink(formdata : FormData) { const posgresInstance = PrismaClientManager.getInstance(); @@ -19,13 +19,13 @@ export async function createPrivateLink(formdata : FormData) { const { title,long_url, status } = await validateURLCreateReq(formdata); const session: ISessionType | null = await getServerSession(authOptions); - let custom_short_code:any = formdata.get('short_code') + let custom_short_code:string = formdata.get('short_code') as string // if custom short code exists if(custom_short_code){ // check if duplicate - const link = await prisma.links.findFirst({ + const link: linkType | null = await prisma.links.findFirst({ where: { short_code:custom_short_code } @@ -57,7 +57,7 @@ export async function createPrivateLink(formdata : FormData) { } } - const shortIdLength = await incrementCounter(); + const shortIdLength:number = await incrementCounter(); if(!custom_short_code) custom_short_code = base62_encode(shortIdLength); @@ -92,9 +92,9 @@ export async function createPrivateLink(formdata : FormData) { export async function updatePrivateLink(formdata : FormData){ const prisma = PrismaClientManager.getInstance().getPrismaClient(); - const title:any = formdata.get('title') - const shortcode:any = formdata.get('short_code') - const linkId:any = formdata.get('linkId') + const title: string = formdata.get('title') as string + const shortcode: string = formdata.get('short_code') as string + const linkId: number = Number.parseInt(formdata.get('linkId') as string) try{ const link = await prisma.links.findFirst({ @@ -109,7 +109,7 @@ export async function updatePrivateLink(formdata : FormData){ await prisma.links.update({ where:{ - id:Number.parseInt(linkId) + id: linkId }, data:{ title:title, @@ -128,3 +128,30 @@ export async function updatePrivateLink(formdata : FormData){ } } } + +export async function getTutorialStatus(){ + const prisma = PrismaClientManager.getInstance().getPrismaClient(); + const session: ISessionType | null = await getServerSession(authOptions); + + const TutorialStatus = { + createLink : false, + clickLink : false, + checkAnalytics:false + } + + if (!session?.user) { + return { + status: HTTP_STATUS.UNAUTHORIZED + } + } + + const link:linkType | null = await prisma.links.findFirst({}); + + if(link){ + TutorialStatus.createLink = true; + } + + // If engagement then check + // If checked Analytics thenc check + +} \ No newline at end of file