Skip to content

Commit

Permalink
fix linting
Browse files Browse the repository at this point in the history
  • Loading branch information
rtnAyush committed Mar 11, 2024
1 parent a4b8166 commit f4042bc
Show file tree
Hide file tree
Showing 3 changed files with 148 additions and 160 deletions.
12 changes: 0 additions & 12 deletions components/EventForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { useFormState } from 'react-dom'
import { postEvent } from "@/lib/actions/events.action"
import Button from "./Button";
import { BiSolidError } from "react-icons/bi"
import { CldUploadWidget } from 'next-cloudinary';

const initialState = {
error: false,
Expand Down Expand Up @@ -39,17 +38,6 @@ const EventForm = () => {
</section>

<section className="w-full md:w-1/2">
{/* <CldUploadWidget uploadPreset="gdsc-iiitt">
{({ open }) => {
console.log(open);
return (
<button onClick={() => open()}>
Upload an Image
</button>
);
}}
</CldUploadWidget> */}
<label htmlFor="imgUrl">Image URL:</label>
<Input type='file' id="imgUrl" accept='.jpg, .png' name="img" required />
</section>
Expand Down
288 changes: 144 additions & 144 deletions lib/actions/events.action.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,161 +5,161 @@ import moment from "moment";
import cloudinary from "../cloudinary";

export async function getEvents(date?: Date, type?: string, quantity?: number) {
try {
let whereCondition = {};
switch (type) {
case "upcoming":
whereCondition = {
dateTime: {
gte: date,
},
};
break;
case "past":
whereCondition = {
dateTime: {
lt: date,
},
};
break;
case "ongoing":
whereCondition = {
dateTime: {
equals: date,
},
};
break;
default:
// No specific type, fetch all events
break;
}

const eventsQuery = {
where: whereCondition,
take: quantity, // Add take option for limiting records
};

const events = await prisma.eventData.findMany(eventsQuery);

return {
error: false,
data: events,
};
} catch (err: any) {
console.log(err.message);
return {
error: true,
message: "Something went wrong.",
};
}
try {
let whereCondition = {};
switch (type) {
case "upcoming":
whereCondition = {
dateTime: {
gte: date,
},
};
break;
case "past":
whereCondition = {
dateTime: {
lt: date,
},
};
break;
case "ongoing":
whereCondition = {
dateTime: {
equals: date,
},
};
break;
default:
// No specific type, fetch all events
break;
}

const eventsQuery = {
where: whereCondition,
take: quantity, // Add take option for limiting records
};

const events = await prisma.eventData.findMany(eventsQuery);

return {
error: false,
data: events,
};
} catch (err: any) {
console.log(err.message);
return {
error: true,
message: "Something went wrong.",
};
}
}

export async function postEvent(prevState: any, formData: any) {
const title = formData.get("title");
const img = formData.get("img");
const mode = formData.get("mode");
const description = formData.get("description");
const date = formData.get("date");
if (img === null || img === undefined) {
console.log("No image found");
return;
}

const arrayBuffer = await img.arrayBuffer();
const buffer = new Uint8Array(arrayBuffer);
const uploadResult = (await new Promise((resolve, reject) => {
cloudinary.uploader
.upload_stream({}, function (err, result) {
if (err) {
reject(err);
return;
}
resolve(result);
})
.end(buffer);
})) as any;

// const time = formData.get('time')

const mobj = moment(date, "YYYY-MM-DD HH:mm:ss") as any;
const samay = mobj.format() as any;

try {
//find if event exists
const eventTime = await prisma.eventData.findUnique({
where: {
dateTime: samay,
},
});

//if event exists, return error
if (eventTime) {
console.log("An event already exists on given date");

return {
error: true,
message: "An event already exists on given date",
};
}

//if event does not exist, create event
await prisma.eventData.create({
data: {
title: title,
img: uploadResult.secure_url,
mode: mode,
description: description,
dateTime: samay,
},
});
revalidatePath("/admin");

return {
error: false,
message: "Event created successfully",
};
} catch (err: any) {
console.log(err.message);
return {
error: true,
message: "Something went wrong.",
};
}
const title = formData.get("title");
const img = formData.get("img");
const mode = formData.get("mode");
const description = formData.get("description");
const date = formData.get("date");
if (img === null || img === undefined) {
console.log("No image found");
return;
}

const arrayBuffer = await img.arrayBuffer();
const buffer = new Uint8Array(arrayBuffer);
const uploadResult = (await new Promise((resolve, reject) => {
cloudinary.uploader
.upload_stream({}, function (err, result) {
if (err) {
reject(err);
return;
}
resolve(result);
})
.end(buffer);
})) as any;

// const time = formData.get('time')

const mobj = moment(date, "YYYY-MM-DD HH:mm:ss") as any;
const samay = mobj.format() as any;

try {
//find if event exists
const eventTime = await prisma.eventData.findUnique({
where: {
dateTime: samay,
},
});

//if event exists, return error
if (eventTime) {
console.log("An event already exists on given date");

return {
error: true,
message: "An event already exists on given date",
};
}

//if event does not exist, create event
await prisma.eventData.create({
data: {
title: title,
img: uploadResult.secure_url,
mode: mode,
description: description,
dateTime: samay,
},
});
revalidatePath("/admin");

return {
error: false,
message: "Event created successfully",
};
} catch (err: any) {
console.log(err.message);
return {
error: true,
message: "Something went wrong.",
};
}
}

export async function deleteEvent(id: string) {
try {
const deletedEvent = await prisma.eventData.delete({
where: {
id: id,
},
});
const imgPublicId = deletedEvent.img
.split("/")
.slice(-2)
.join("/")
.split(".")[0] as string;
try {
const deletedEvent = await prisma.eventData.delete({
where: {
id: id,
},
});
const imgPublicId = deletedEvent.img
.split("/")
.slice(-2)
.join("/")
.split(".")[0] as string;

(await new Promise((resolve, reject) => {
cloudinary.uploader.destroy(imgPublicId, function (err, result) {
if (err) {
reject(err);
return;
}
resolve(result);
});
cloudinary.uploader.destroy(imgPublicId, function (err, result) {
if (err) {
reject(err);
return;
}
resolve(result);
});
})) as any;

revalidatePath("/admin");
return {
error: false,
message: "Event deleted successfully",
};
} catch (err: any) {
console.log(err.message);
return {
error: true,
message: "Something went wrong.",
error: false,
message: "Event deleted successfully",
};
}
} catch (err: any) {
console.log(err.message);
return {
error: true,
message: "Something went wrong.",
};
}
}
8 changes: 4 additions & 4 deletions lib/cloudinary.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { v2 as cloudinary } from "cloudinary";

cloudinary.config({
cloud_name: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,
api_key: process.env.NEXT_PUBLIC_CLOUDINARY_API_KEY,
api_secret: process.env.NEXT_PUBLIC_CLOUDINARY_API_SECRET,
secure: true,
cloud_name: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,
api_key: process.env.NEXT_PUBLIC_CLOUDINARY_API_KEY,
api_secret: process.env.NEXT_PUBLIC_CLOUDINARY_API_SECRET,
secure: true,
});

export default cloudinary;

0 comments on commit f4042bc

Please sign in to comment.