add blog
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { postRouter } from "@/server/api/routers/post";
|
||||
import { linksRouter } from "./routers/links";
|
||||
import { miscRouter } from "./routers/misc";
|
||||
import { blogRouter } from "./routers/blog";
|
||||
import { createTRPCRouter } from "@/server/api/trpc";
|
||||
|
||||
/**
|
||||
@@ -11,7 +12,8 @@ import { createTRPCRouter } from "@/server/api/trpc";
|
||||
export const appRouter = createTRPCRouter({
|
||||
post: postRouter,
|
||||
links: linksRouter,
|
||||
misc: miscRouter
|
||||
misc: miscRouter,
|
||||
blog: blogRouter
|
||||
});
|
||||
|
||||
// export type definition of API
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
import {z} from 'zod';
|
||||
import {
|
||||
createTRPCRouter,
|
||||
protectedProcedure,
|
||||
publicProcedure
|
||||
} from "@/server/api/trpc";
|
||||
|
||||
export const blogRouter = createTRPCRouter({
|
||||
create: protectedProcedure
|
||||
.input(
|
||||
z.object({
|
||||
name: z.string().min(1).max(100),
|
||||
contents: z.string().min(1),
|
||||
tagline: z.string().min(1).max(30),
|
||||
image: z.string().min(1)
|
||||
})
|
||||
)
|
||||
.mutation(async ({ ctx, input }) => {
|
||||
return ctx.db.blogPost.create({
|
||||
data: {
|
||||
name: input.name,
|
||||
contents: input.contents,
|
||||
tagline: input.tagline,
|
||||
image: input.image,
|
||||
createdBy: { connect: { id: ctx.session.user.id } },
|
||||
},
|
||||
});
|
||||
}),
|
||||
delete: protectedProcedure
|
||||
.input(
|
||||
z.string().min(1)
|
||||
)
|
||||
.mutation(async ({ctx, input}) => {
|
||||
return ctx.db.blogPost.delete({
|
||||
where: {
|
||||
id: input
|
||||
}
|
||||
})
|
||||
}),
|
||||
getOne: publicProcedure
|
||||
.input(String)
|
||||
.query(({ ctx, input }) => {
|
||||
return ctx.db.blogPost.findFirst({
|
||||
where: { id: input },
|
||||
});
|
||||
}),
|
||||
getAll: publicProcedure
|
||||
.query(({ctx}) => {
|
||||
return ctx.db.blogPost.findMany()
|
||||
}),
|
||||
})
|
||||
Reference in New Issue
Block a user