From bc80fc0d6064860cbdb9cf4d3870a474a8e2e789 Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Fri, 20 Sep 2024 16:27:36 +0100 Subject: [PATCH 1/3] Slugifying URLs.. --- bun.lockb | Bin 404583 -> 405787 bytes ..._rogers.sql => 0000_burly_katie_power.sql} | 6 +- drizzle/meta/0000_snapshot.json | 51 +++++++++++++++- drizzle/meta/_journal.json | 4 +- next.config.js | 3 + package.json | 1 + scripts/scaffold.sql | 12 ++++ src/app/(site)/(app)/image/[slug]/page.tsx | 13 +++++ src/app/(site)/{ => (app)}/upload/page.tsx | 0 src/components/pages/image/image-page.tsx | 12 ++++ src/components/widgets/user-nav-dropdown.tsx | 1 - src/lib/models/post.ts | 8 +++ src/server/api/routers/image.ts | 55 +++++++++++++++--- src/server/db/schema.ts | 48 +++++++++------ 14 files changed, 180 insertions(+), 34 deletions(-) rename drizzle/{0000_wandering_steve_rogers.sql => 0000_burly_katie_power.sql} (88%) create mode 100644 scripts/scaffold.sql create mode 100644 src/app/(site)/(app)/image/[slug]/page.tsx rename src/app/(site)/{ => (app)}/upload/page.tsx (100%) create mode 100644 src/components/pages/image/image-page.tsx create mode 100644 src/lib/models/post.ts diff --git a/bun.lockb b/bun.lockb index c1357ac632e4a843a28c9315a594db93a8cdcdc0..cb7620628f06b474ce2ecc1b44ac28865ecc4ebc 100755 GIT binary patch delta 73588 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�+$ZxRPU0FGgBKR5Q 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 CdZ9Z2 delta 73367 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�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 statement-breakpoint CREATE TABLE IF NOT EXISTS "images" ( "id" varchar(255) PRIMARY KEY NOT NULL, + "slug" varchar(255) NOT NULL, "title" varchar(256), "description" varchar, "tags" text[], "filepath" varchar(256), "created_by" varchar(255) NOT NULL, "created_at" timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - "updated_at" timestamp with time zone + "updated_at" timestamp with time zone, + CONSTRAINT "images_slug_unique" UNIQUE("slug") ); --> statement-breakpoint CREATE TABLE IF NOT EXISTS "sessions" ( @@ -65,4 +67,6 @@ EXCEPTION END $$; --> statement-breakpoint CREATE INDEX IF NOT EXISTS "account_user_id_idx" ON "accounts" USING btree ("user_id");--> statement-breakpoint +CREATE INDEX IF NOT EXISTS "image_user_id_idx" ON "images" USING btree ("created_by");--> statement-breakpoint +CREATE INDEX IF NOT EXISTS "image_slug_idx" ON "images" USING btree ("slug");--> statement-breakpoint CREATE INDEX IF NOT EXISTS "session_user_id_idx" ON "sessions" USING btree ("user_id"); \ No newline at end of file diff --git a/drizzle/meta/0000_snapshot.json b/drizzle/meta/0000_snapshot.json index 0be79c4..390a6e7 100644 --- a/drizzle/meta/0000_snapshot.json +++ b/drizzle/meta/0000_snapshot.json @@ -1,5 +1,5 @@ { - "id": "f7541b9a-140c-4795-a672-4d0c80b56ef1", + "id": "6010a064-33aa-404b-b933-c4ca1f1c415d", "prevId": "00000000-0000-0000-0000-000000000000", "version": "7", "dialect": "postgresql", @@ -128,6 +128,12 @@ "primaryKey": true, "notNull": true }, + "slug": { + "name": "slug", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, "title": { "name": "title", "type": "varchar(256)", @@ -172,7 +178,38 @@ "notNull": false } }, - "indexes": {}, + "indexes": { + "image_user_id_idx": { + "name": "image_user_id_idx", + "columns": [ + { + "expression": "created_by", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "image_slug_idx": { + "name": "image_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, "foreignKeys": { "images_created_by_users_id_fk": { "name": "images_created_by_users_id_fk", @@ -189,7 +226,15 @@ } }, "compositePrimaryKeys": {}, - "uniqueConstraints": {} + "uniqueConstraints": { + "images_slug_unique": { + "name": "images_slug_unique", + "nullsNotDistinct": false, + "columns": [ + "slug" + ] + } + } }, "public.sessions": { "name": "sessions", diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index 80007ba..b5e9169 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -5,8 +5,8 @@ { "idx": 0, "version": "7", - "when": 1726662474693, - "tag": "0000_wandering_steve_rogers", + "when": 1726843311417, + "tag": "0000_burly_katie_power", "breakpoints": true } ] diff --git a/next.config.js b/next.config.js index 74f3878..c2528bd 100644 --- a/next.config.js +++ b/next.config.js @@ -14,6 +14,9 @@ const config = { { hostname: "opengifame.dev.fergl.ie", }, + { + hostname: "cloudflare-ipfs.com", + }, { hostname: "localhost", }, diff --git a/package.json b/package.json index 5ce4bd5..64be64a 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "@radix-ui/react-toggle": "^1.1.0", "@radix-ui/react-toggle-group": "^1.1.0", "@radix-ui/react-tooltip": "^1.1.2", + "@sindresorhus/slugify": "^2.2.1", "@t3-oss/env-nextjs": "^0.11.1", "@tanstack/react-query": "^5.56.2", "@trpc/client": "^11.0.0-rc.446", diff --git a/scripts/scaffold.sql b/scripts/scaffold.sql new file mode 100644 index 0000000..c9f96f8 --- /dev/null +++ b/scripts/scaffold.sql @@ -0,0 +1,12 @@ +INSERT INTO public.images (id, title, description, tags, filepath, created_by, created_at, updated_at, slug) VALUES ('974248ec-ae31-4c1a-900d-348432e16e90', 'Frasier "directs" Niles', 'Ham Radio', '{}', '974248ec-ae31-4c1a-900d-348432e16e90.gif', '6c98e4e0-873c-4bd0-a059-93177709eddd', '2024-09-18 15:26:51.350362 +00:00', '2024-09-18 15:26:51.639000 +00:00', 'frasier-directs-niles'); +INSERT INTO public.images (id, title, description, tags, filepath, created_by, created_at, updated_at, slug) VALUES ('18fac61f-d2c4-4248-b74b-5d23e8717bbc', 'Frasier groaning.', 'Frasier & Niles in Nervosa', '{}', '18fac61f-d2c4-4248-b74b-5d23e8717bbc.gif', '6c98e4e0-873c-4bd0-a059-93177709eddd', '2024-09-18 15:27:46.438441 +00:00', '2024-09-18 15:27:46.477000 +00:00', 'frasier-groaning'); +INSERT INTO public.images (id, title, description, tags, filepath, created_by, created_at, updated_at, slug) VALUES ('56e89352-aa69-4a9e-92c4-5eb3e8e94703', 'Frasier tasting caviar', 'From Roe to Perdition S10E18 ', '{}', '56e89352-aa69-4a9e-92c4-5eb3e8e94703.gif', '6c98e4e0-873c-4bd0-a059-93177709eddd', '2024-09-18 15:27:28.599836 +00:00', '2024-09-18 15:27:28.632000 +00:00', 'frasier-tasting-caviar'); +INSERT INTO public.images (id, title, description, tags, filepath, created_by, created_at, updated_at, slug) VALUES ('38d3e400-20a3-49be-bf8f-5c4c77ab3a9f', 'Niles gets a class of champagne in the face', 'From Voyage of the Damned', '{}', '38d3e400-20a3-49be-bf8f-5c4c77ab3a9f.gif', '6c98e4e0-873c-4bd0-a059-93177709eddd', '2024-09-18 15:27:01.933852 +00:00', '2024-09-18 15:27:01.967000 +00:00', 'niles-gets-a-class-of-champagne-in-the-face'); +INSERT INTO public.images (id, title, description, tags, filepath, created_by, created_at, updated_at, slug) VALUES ('4aa77fab-cfe4-4f5d-ba62-c674b43b09c8', 'I miss being unapproachable', 'From Good Grief', '{}', '4aa77fab-cfe4-4f5d-ba62-c674b43b09c8.gif', '6c98e4e0-873c-4bd0-a059-93177709eddd', '2024-09-18 15:27:18.617006 +00:00', '2024-09-18 15:27:18.651000 +00:00', 'i-miss-being-unapproachable'); +INSERT INTO public.images (id, title, description, tags, filepath, created_by, created_at, updated_at, slug) VALUES ('062edc3f-2d3c-4d97-a569-f41804d6d352', 'I''m having one now', 'Niles has never had an unexpressed thought', '{niles,frasier}', '062edc3f-2d3c-4d97-a569-f41804d6d352.gif', '6c98e4e0-873c-4bd0-a059-93177709eddd', '2024-09-18 15:27:59.258519 +00:00', '2024-09-18 15:27:59.283000 +00:00', 'i-m-having-one-now'); +INSERT INTO public.images (id, title, description, tags, filepath, created_by, created_at, updated_at, slug) VALUES ('ced6dc13-10b4-43d7-8072-0db2091840d7', 'Wounded!!!', 'Frasier is wounded', '{frasier,wounded}', 'ced6dc13-10b4-43d7-8072-0db2091840d7.gif', '6c98e4e0-873c-4bd0-a059-93177709eddd', '2024-09-18 15:27:37.875584 +00:00', '2024-09-18 15:27:37.914000 +00:00', 'wounded'); +INSERT INTO public.images (id, title, description, tags, filepath, created_by, created_at, updated_at, slug) VALUES ('13c54e08-2fd6-4810-982f-14b701e38b5f', 'Rrrrreally.', 'Guy checks out Niles'' bottom', '{}', '13c54e08-2fd6-4810-982f-14b701e38b5f.gif', '6c98e4e0-873c-4bd0-a059-93177709eddd', '2024-09-18 15:27:13.414832 +00:00', '2024-09-18 15:27:13.442000 +00:00', 'rrrrreally'); +INSERT INTO public.images (id, title, description, tags, filepath, created_by, created_at, updated_at, slug) VALUES ('d23df48f-2b99-4b29-90fd-2f3cff205010', 'Successful High Five', 'Niles & Frasier successfully complete a high five (including behind the back down low).', '{}', 'd23df48f-2b99-4b29-90fd-2f3cff205010.gif', '6c98e4e0-873c-4bd0-a059-93177709eddd', '2024-09-18 15:27:51.131650 +00:00', '2024-09-18 15:27:51.152000 +00:00', 'successful-high-five'); +INSERT INTO public.images (id, title, description, tags, filepath, created_by, created_at, updated_at, slug) VALUES ('0ccfccd4-c24f-42a0-9864-2cb8d230bb16', 'Niles clapping', 'Niles is excited', '{}', '0ccfccd4-c24f-42a0-9864-2cb8d230bb16.gif', '6c98e4e0-873c-4bd0-a059-93177709eddd', '2024-09-18 15:27:33.156638 +00:00', '2024-09-18 15:27:33.220000 +00:00', 'niles-clapping'); +INSERT INTO public.images (id, title, description, tags, filepath, created_by, created_at, updated_at, slug) VALUES ('4a208725-453d-4d0c-b620-cc82b7192ea8', 'I just want to die!!', '', '{}', '4a208725-453d-4d0c-b620-cc82b7192ea8.gif', '6c98e4e0-873c-4bd0-a059-93177709eddd', '2024-09-18 15:27:07.374464 +00:00', '2024-09-18 15:27:07.396000 +00:00', 'i-just-want-to-die'); +INSERT INTO public.images (id, title, description, tags, filepath, created_by, created_at, updated_at, slug) VALUES ('4a2a52a2-85eb-417c-bdb8-a1d0101df17f', 'Some boys go to college.', 'Oh, some boys go to college, but we think they''re all wussies, cuz they get all the knowledge, and we get all the...', '{}', '4a2a52a2-85eb-417c-bdb8-a1d0101df17f.gif', '6c98e4e0-873c-4bd0-a059-93177709eddd', '2024-09-18 15:27:42.138300 +00:00', '2024-09-18 15:27:42.175000 +00:00', 'some-boys-go-to-college'); diff --git a/src/app/(site)/(app)/image/[slug]/page.tsx b/src/app/(site)/(app)/image/[slug]/page.tsx new file mode 100644 index 0000000..60316a9 --- /dev/null +++ b/src/app/(site)/(app)/image/[slug]/page.tsx @@ -0,0 +1,13 @@ +import { api } from "@/trpc/server"; + +type ImageRouteParams = { + slug: string; +}; +const ImageRoute = async ({ params }: { params: ImageRouteParams }) => { + // const ImageRoute = ({ slug }: ImageRouteParams) => { + + const image = await api.image.getBySlug(); + return
Me so imagey {params.slug}
; +}; + +export default ImageRoute; diff --git a/src/app/(site)/upload/page.tsx b/src/app/(site)/(app)/upload/page.tsx similarity index 100% rename from src/app/(site)/upload/page.tsx rename to src/app/(site)/(app)/upload/page.tsx diff --git a/src/components/pages/image/image-page.tsx b/src/components/pages/image/image-page.tsx new file mode 100644 index 0000000..66d1cfd --- /dev/null +++ b/src/components/pages/image/image-page.tsx @@ -0,0 +1,12 @@ +import React from "react"; +import { Post } from "@/lib/models/post"; + +type ImagePageProps = { + post: Post; +}; + +const ImagePage: React.FC = ({ post }) => { + return
{post.title}
; +}; + +export default ImagePage; diff --git a/src/components/widgets/user-nav-dropdown.tsx b/src/components/widgets/user-nav-dropdown.tsx index d36a456..8e8801d 100644 --- a/src/components/widgets/user-nav-dropdown.tsx +++ b/src/components/widgets/user-nav-dropdown.tsx @@ -15,7 +15,6 @@ const UserNavDropdown: React.FC = ({ session }) => { session?.user?.image || "/images/default-profile.jpg", ); React.useEffect(() => { - logger.debug("UserNavDropdown", "session", session); setProfileImage(session?.user?.image || "/images/default-profile.jpg"); }, [session]); diff --git a/src/lib/models/post.ts b/src/lib/models/post.ts new file mode 100644 index 0000000..0593fad --- /dev/null +++ b/src/lib/models/post.ts @@ -0,0 +1,8 @@ +export type Post = { + slug: string; + title: string; + description: string; + likes: number; + dislikes: number; + datePosted: Date; +} \ No newline at end of file diff --git a/src/server/api/routers/image.ts b/src/server/api/routers/image.ts index 41af296..e386aea 100644 --- a/src/server/api/routers/image.ts +++ b/src/server/api/routers/image.ts @@ -3,17 +3,34 @@ import { protectedProcedure, publicProcedure, } from "@/server/api/trpc"; +import { slugifyWithCounter } from "@sindresorhus/slugify"; import { z } from "zod"; -import { images } from "@/server/db/schema"; +import { images, users } from "@/server/db/schema"; import { env } from "@/env"; - -const imageCreateType = { - title: z.string().min(5), - description: z.string(), - tags: z.array(z.string()), -}; +import { and, eq } from "drizzle-orm"; export const imageRouter = createTRPCRouter({ + getBySlug: publicProcedure + .input(z.object({ slug: z.string() })) + .query(async ({ ctx, input }) => { + const image = ( + await ctx.db + .select() + .from(images) + .where(and(eq(images.slug, input.slug))) + .limit(1) + )[0]; + if (!image) { + throw new Error("Image not found"); + } + return { + id: image.id, + title: image.title, + description: image.description, + tags: image.tags, + url: `${env.IMAGE_BASE_URL}/${image.filePath}`, + }; + }), getTrending: publicProcedure.query(async ({ ctx }) => { const trending = await ctx.db.query.images.findMany({ orderBy: (images, { desc }) => [desc(images.createdAt)], @@ -31,12 +48,34 @@ export const imageRouter = createTRPCRouter({ ); }), create: protectedProcedure - .input(z.object(imageCreateType)) + .input( + z.object({ + title: z.string().min(5), + description: z.string(), + tags: z.array(z.string()), + }), + ) .mutation(async ({ ctx, input }) => { + var slugify = slugifyWithCounter(); + var found = false; + var slug = ""; + do { + slug = slugify(input.title); + const existing = await ctx.db + .select() + .from(images) + .where(and(eq(images.slug, slug))) + .limit(1); + if (!existing[0]) { + found = true; + } + } while (!found); + const post = await ctx.db .insert(images) .values({ title: input.title, + slug: slug, description: input.description, tags: input.tags, createdById: ctx.session.user.id, diff --git a/src/server/db/schema.ts b/src/server/db/schema.ts index e3665c0..946eada 100644 --- a/src/server/db/schema.ts +++ b/src/server/db/schema.ts @@ -13,25 +13,35 @@ import { type AdapterAccount } from "next-auth/adapters"; export const createTable = pgTableCreator((name) => `${name}`); -export const images = createTable("images", { - id: varchar("id", { length: 255 }) - .notNull() - .primaryKey() - .$defaultFn(() => crypto.randomUUID()), - title: varchar("title", { length: 256 }), - description: varchar("description"), - tags: text("tags").array(), - filePath: varchar("filepath", { length: 256 }), - createdById: varchar("created_by", { length: 255 }) - .notNull() - .references(() => users.id), - createdAt: timestamp("created_at", { withTimezone: true }) - .default(sql`CURRENT_TIMESTAMP`) - .notNull(), - updatedAt: timestamp("updated_at", { withTimezone: true }).$onUpdate( - () => new Date(), - ), -}); +export const images = createTable( + "images", + { + id: varchar("id", { length: 255 }) + .notNull() + .primaryKey() + .$defaultFn(() => crypto.randomUUID()), + slug: varchar("slug", { length: 255 }).notNull().unique(), + title: varchar("title", { length: 256 }), + description: varchar("description"), + tags: text("tags").array(), + filePath: varchar("filepath", { length: 256 }), + createdById: varchar("created_by", { length: 255 }) + .notNull() + .references(() => users.id), + createdAt: timestamp("created_at", { withTimezone: true }) + .default(sql`CURRENT_TIMESTAMP`) + .notNull(), + updatedAt: timestamp("updated_at", { withTimezone: true }).$onUpdate( + () => new Date(), + ), + }, + (table) => { + return { + userIndex: index("image_user_id_idx").on(table.createdById), + slugIndex: index("image_slug_idx").on(table.slug), + }; + }, +); export const users = createTable("users", { id: varchar("id", { length: 255 }) From c71a9791b97c24b25ce080388871f98fe6bd99e5 Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Fri, 20 Sep 2024 17:06:20 +0100 Subject: [PATCH 2/3] Refactor image/post routes --- src/app/(site)/(app)/image/[slug]/page.tsx | 13 ------------- src/app/(site)/(app)/post/[slug]/page.tsx | 12 ++++++++++++ src/app/page.tsx | 2 +- .../image-page.tsx => post/post-page.tsx} | 6 +++--- src/components/pages/upload-page.tsx | 4 ++-- src/components/trending-images.tsx | 6 +++--- src/lib/models/post.ts | 16 +++++++++------- src/server/api/root.ts | 6 +++--- src/server/api/routers/{image.ts => post.ts} | 19 ++++++++++++------- 9 files changed, 45 insertions(+), 39 deletions(-) delete mode 100644 src/app/(site)/(app)/image/[slug]/page.tsx create mode 100644 src/app/(site)/(app)/post/[slug]/page.tsx rename src/components/pages/{image/image-page.tsx => post/post-page.tsx} (53%) rename src/server/api/routers/{image.ts => post.ts} (85%) diff --git a/src/app/(site)/(app)/image/[slug]/page.tsx b/src/app/(site)/(app)/image/[slug]/page.tsx deleted file mode 100644 index 60316a9..0000000 --- a/src/app/(site)/(app)/image/[slug]/page.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { api } from "@/trpc/server"; - -type ImageRouteParams = { - slug: string; -}; -const ImageRoute = async ({ params }: { params: ImageRouteParams }) => { - // const ImageRoute = ({ slug }: ImageRouteParams) => { - - const image = await api.image.getBySlug(); - return
Me so imagey {params.slug}
; -}; - -export default ImageRoute; diff --git a/src/app/(site)/(app)/post/[slug]/page.tsx b/src/app/(site)/(app)/post/[slug]/page.tsx new file mode 100644 index 0000000..3f3f8ac --- /dev/null +++ b/src/app/(site)/(app)/post/[slug]/page.tsx @@ -0,0 +1,12 @@ +import PostPage from "@/components/pages/post/post-page"; +import { api } from "@/trpc/server"; + +type PostRouteParams = { + slug: string; +}; +const PostRoute = async ({ params }: { params: PostRouteParams }) => { + const post = await api.post.getBySlug({ slug: params.slug }); + return ; +}; + +export default PostRoute; diff --git a/src/app/page.tsx b/src/app/page.tsx index a8cce88..7b7cb6d 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -5,7 +5,7 @@ import { api, HydrateClient } from "@/trpc/server"; export default async function Home() { const session = await getServerAuthSession(); - void api.image.getTrending.prefetch(); + void api.post.getTrending.prefetch(); return ( diff --git a/src/components/pages/image/image-page.tsx b/src/components/pages/post/post-page.tsx similarity index 53% rename from src/components/pages/image/image-page.tsx rename to src/components/pages/post/post-page.tsx index 66d1cfd..a94e73e 100644 --- a/src/components/pages/image/image-page.tsx +++ b/src/components/pages/post/post-page.tsx @@ -1,12 +1,12 @@ import React from "react"; import { Post } from "@/lib/models/post"; -type ImagePageProps = { +type PostPageProps = { post: Post; }; -const ImagePage: React.FC = ({ post }) => { +const PostPage: React.FC = ({ post }) => { return
{post.title}
; }; -export default ImagePage; +export default PostPage; diff --git a/src/components/pages/upload-page.tsx b/src/components/pages/upload-page.tsx index 6f26052..2a11ac6 100644 --- a/src/components/pages/upload-page.tsx +++ b/src/components/pages/upload-page.tsx @@ -52,7 +52,7 @@ const UploadPage: React.FC = () => { // ) // .refine((file) => file.size <= MAX_FILE_SIZE, `Max file size is 5MB.`), // }); - const createImage = api.image.create.useMutation({ + const createImage = api.post.create.useMutation({ onSuccess: async (e) => { console.log("upload-page", "onSuccess", e); const file = form.getValues().image; @@ -64,7 +64,7 @@ const UploadPage: React.FC = () => { body, }); if (response.status === StatusCodes.CREATED) { - await utils.image.invalidate(); + await utils.post.invalidate(); router.replace("/"); } logger.error("upload-page", "createImage", response.statusText); diff --git a/src/components/trending-images.tsx b/src/components/trending-images.tsx index 8b1db46..93d263e 100644 --- a/src/components/trending-images.tsx +++ b/src/components/trending-images.tsx @@ -15,17 +15,17 @@ const downvote = async () => { }; export const TrendingImages: React.FC = async () => { - const latestImages = await api.image.getTrending(); + const latestImages = await api.post.getTrending(); return latestImages.length !== 0 ? (
{latestImages.map((image) => ( - +
{image.description
diff --git a/src/lib/models/post.ts b/src/lib/models/post.ts index 0593fad..171bfac 100644 --- a/src/lib/models/post.ts +++ b/src/lib/models/post.ts @@ -1,8 +1,10 @@ export type Post = { - slug: string; - title: string; - description: string; - likes: number; - dislikes: number; - datePosted: Date; -} \ No newline at end of file + slug: string; + title: string; + description: string; + imageUrl: string; + likes: number; + tags: string[]; + dislikes: number; + datePosted: Date; +}; diff --git a/src/server/api/root.ts b/src/server/api/root.ts index 5469a85..810b110 100644 --- a/src/server/api/root.ts +++ b/src/server/api/root.ts @@ -1,6 +1,6 @@ import { createCallerFactory, createTRPCRouter } from "@/server/api/trpc"; -import { authRouter } from "./routers/auth"; -import { imageRouter } from "@/server/api/routers/image"; +import { authRouter } from "@/server/api/routers/auth"; +import { postRouter } from "@/server/api/routers/post"; /** * This is the primary router for your server. @@ -9,7 +9,7 @@ import { imageRouter } from "@/server/api/routers/image"; */ export const appRouter = createTRPCRouter({ auth: authRouter, - image: imageRouter, + post: postRouter, }); // export type definition of API diff --git a/src/server/api/routers/image.ts b/src/server/api/routers/post.ts similarity index 85% rename from src/server/api/routers/image.ts rename to src/server/api/routers/post.ts index e386aea..2496527 100644 --- a/src/server/api/routers/image.ts +++ b/src/server/api/routers/post.ts @@ -8,8 +8,9 @@ import { z } from "zod"; import { images, users } from "@/server/db/schema"; import { env } from "@/env"; import { and, eq } from "drizzle-orm"; +import { Post } from "@/lib/models/post"; -export const imageRouter = createTRPCRouter({ +export const postRouter = createTRPCRouter({ getBySlug: publicProcedure .input(z.object({ slug: z.string() })) .query(async ({ ctx, input }) => { @@ -24,12 +25,14 @@ export const imageRouter = createTRPCRouter({ throw new Error("Image not found"); } return { - id: image.id, + slug: image.id, title: image.title, description: image.description, tags: image.tags, - url: `${env.IMAGE_BASE_URL}/${image.filePath}`, - }; + imageUrl: `${env.IMAGE_BASE_URL}/${image.filePath}`, + likes: 0, + dislikes: 0, + } as Post; }), getTrending: publicProcedure.query(async ({ ctx }) => { const trending = await ctx.db.query.images.findMany({ @@ -38,12 +41,14 @@ export const imageRouter = createTRPCRouter({ return ( trending.map((t) => { return { - id: t.id, + slug: t.slug, title: t.title, description: t.description, tags: t.tags, - url: `${env.IMAGE_BASE_URL}/${t.filePath}`, - }; + imageUrl: `${env.IMAGE_BASE_URL}/${t.filePath}`, + likes: 0, + dislikes: 0, + } as Post; }) ?? null ); }), From 195ab597dd1754cf2d80e574848e8ab9e5ed24f2 Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Fri, 20 Sep 2024 17:35:59 +0100 Subject: [PATCH 3/3] Image page added --- bun.lockb | Bin 405787 -> 404406 bytes src/components/pages/post/post-page.tsx | 19 ++++++++++++++++++- src/components/trending-images.tsx | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/bun.lockb b/bun.lockb index cb7620628f06b474ce2ecc1b44ac28865ecc4ebc..0292af8f813ee8023d250d63fbab38d91ae5946a 100755 GIT binary patch delta 72162 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%0Aa{sCAOOe( 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 VC9^@UrAt;Feu90l`;A~&>y3FTt9fqQSy#VZJg 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 diff --git a/src/components/pages/post/post-page.tsx b/src/components/pages/post/post-page.tsx index a94e73e..ce22807 100644 --- a/src/components/pages/post/post-page.tsx +++ b/src/components/pages/post/post-page.tsx @@ -6,7 +6,24 @@ type PostPageProps = { }; const PostPage: React.FC = ({ post }) => { - return
{post.title}
; + return ( +
+
+
+
+ +
+

{post.title}

+

{post.description}

+
+
+
+ +
+ ); }; export default PostPage; diff --git a/src/components/trending-images.tsx b/src/components/trending-images.tsx index 93d263e..a3e11d0 100644 --- a/src/components/trending-images.tsx +++ b/src/components/trending-images.tsx @@ -19,7 +19,7 @@ export const TrendingImages: React.FC = async () => { return latestImages.length !== 0 ? (
{latestImages.map((image) => ( - +