From 0788bfc56e054401e2a6cb3cf8f021a56eb6f212 Mon Sep 17 00:00:00 2001 From: Hebi Li Date: Fri, 29 Sep 2023 17:59:25 -0700 Subject: [PATCH] switch backend from graphql to trpc --- apps/web-api/package.json | 4 +- apps/web-api/src/resolver.test.ts | 32 -- apps/web-api/src/resolver_repo.ts | 556 ++++++++++++++++-------------- apps/web-api/src/resolver_user.ts | 137 +++++--- apps/web-api/src/server.ts | 74 +--- apps/web-api/src/trpc.ts | 62 ++++ apps/web-api/src/utils.ts | 10 + bun.lockb | Bin 626268 -> 502092 bytes 8 files changed, 454 insertions(+), 421 deletions(-) delete mode 100644 apps/web-api/src/resolver.test.ts create mode 100644 apps/web-api/src/trpc.ts create mode 100644 apps/web-api/src/utils.ts diff --git a/apps/web-api/package.json b/apps/web-api/package.json index c522229c..9c6f7e93 100644 --- a/apps/web-api/package.json +++ b/apps/web-api/package.json @@ -13,6 +13,7 @@ "@codepod/prisma": "workspace:*", "@kubernetes/client-node": "^0.17.1", "@prisma/client": "4.3.1", + "@trpc/server": "^10.38.5", "apollo-server": "^3.5.0", "apollo-server-core": "^3.10.3", "apollo-server-express": "3.10.2", @@ -34,7 +35,8 @@ "ws": "^8.2.3", "y-prosemirror": "^1.2.1", "y-protocols": "^1.0.5", - "yjs": "^13.6.7" + "yjs": "^13.6.7", + "zod": "^3.22.2" }, "devDependencies": { "@jest/globals": "^29.6.4", diff --git a/apps/web-api/src/resolver.test.ts b/apps/web-api/src/resolver.test.ts deleted file mode 100644 index 773853b8..00000000 --- a/apps/web-api/src/resolver.test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { typeDefs } from "./typedefs"; -import { resolvers } from "./resolver"; -import { ApolloServer, gql } from "apollo-server-express"; -// import { gql } from "@apollo/client"; - -import { describe, expect, test } from "@jest/globals"; - -describe("sum module", () => { - test("adds 1 + 2 to equal 3", () => { - expect(1 + 2).toBe(3); - }); - - test("returns hello with the provided name", async () => { - const testServer = new ApolloServer({ - typeDefs, - resolvers, - }); - - const result = await testServer.executeOperation({ - query: gql` - query hello { - hello - } - `, - // query: "query hello() { hello }", - variables: { name: "world" }, - }); - - expect(result.errors).toBeUndefined(); - expect(result.data?.hello).toBe("Hello world!"); - }); -}); diff --git a/apps/web-api/src/resolver_repo.ts b/apps/web-api/src/resolver_repo.ts index 8ef26b2d..96e0f28a 100644 --- a/apps/web-api/src/resolver_repo.ts +++ b/apps/web-api/src/resolver_repo.ts @@ -1,3 +1,6 @@ +import { t } from "./trpc"; +import { z } from "zod"; + // nanoid v4 does not work with nodejs. https://github.com/ai/nanoid/issues/365 import { customAlphabet } from "nanoid/async"; import { lowercase, numbers } from "nanoid-dictionary"; @@ -41,7 +44,7 @@ async function ensurePodEditAccess({ id, userId }) { } } -async function getDashboardRepos(_, __, { userId }) { +const getDashboardRepos = t.procedure.query(async ({ ctx: { userId } }) => { if (!userId) throw Error("Unauthenticated"); const repos = await prisma.repo.findMany({ where: { @@ -76,7 +79,7 @@ async function getDashboardRepos(_, __, { userId }) { : repo.updatedAt, }; }); -} +}); async function updateUserRepoData({ userId, repoId }) { // FIXME I should probably rename this from query to mutation? @@ -110,27 +113,29 @@ async function updateUserRepoData({ userId, repoId }) { } } -async function repo(_, { id }, { userId }) { - // a user can only access a private repo if he is the owner or a collaborator - const repo = await prisma.repo.findFirst({ - where: { - OR: [ - { id, public: true }, - { id, owner: { id: userId || "undefined" } }, - { id, collaborators: { some: { id: userId || "undefined" } } }, - ], - }, - include: { - owner: true, - collaborators: true, - }, +const repo = t.procedure + .input(z.object({ id: z.string() })) + .query(async ({ input: { id }, ctx: { userId } }) => { + // a user can only access a private repo if he is the owner or a collaborator + const repo = await prisma.repo.findFirst({ + where: { + OR: [ + { id, public: true }, + { id, owner: { id: userId || "undefined" } }, + { id, collaborators: { some: { id: userId || "undefined" } } }, + ], + }, + include: { + owner: true, + collaborators: true, + }, + }); + if (!repo) throw Error("Repo not found"); + await updateUserRepoData({ userId, repoId: id }); + return repo; }); - if (!repo) throw Error("Repo not found"); - await updateUserRepoData({ userId, repoId: id }); - return repo; -} -async function createRepo(_, {}, { userId }) { +const createRepo = t.procedure.mutation(async ({ ctx: { userId } }) => { if (!userId) throw Error("Unauthenticated"); const repo = await prisma.repo.create({ data: { @@ -146,270 +151,303 @@ async function createRepo(_, {}, { userId }) { }, }); return repo; -} +}); -async function updateVisibility(_, { repoId, isPublic }, { userId }) { - if (!userId) throw Error("Unauthenticated"); - const repo = await prisma.repo.findFirst({ - where: { - id: repoId, - owner: { id: userId || "undefined" }, - }, - }); - if (!repo) throw Error("Repo not found"); - await prisma.repo.update({ - where: { - id: repoId, - }, - data: { - public: isPublic, - }, +const updateVisibility = t.procedure + .input(z.object({ repoId: z.string(), isPublic: z.boolean() })) + .mutation(async ({ input: { repoId, isPublic }, ctx: { userId } }) => { + if (!userId) throw Error("Unauthenticated"); + const repo = await prisma.repo.findFirst({ + where: { + id: repoId, + owner: { id: userId || "undefined" }, + }, + }); + if (!repo) throw Error("Repo not found"); + await prisma.repo.update({ + where: { + id: repoId, + }, + data: { + public: isPublic, + }, + }); + return true; }); - return true; -} -async function updateRepo(_, { id, name }, { userId }) { - if (!userId) throw Error("Unauthenticated"); - const repo = await prisma.repo.findFirst({ - where: { - id, - owner: { - id: userId, +const updateRepo = t.procedure + .input(z.object({ id: z.string(), name: z.string() })) + .mutation(async ({ input: { id, name }, ctx: { userId } }) => { + if (!userId) throw Error("Unauthenticated"); + const repo = await prisma.repo.findFirst({ + where: { + id, + owner: { + id: userId, + }, }, - }, - }); - if (!repo) throw new Error("Repo not found"); - const updatedRepo = await prisma.repo.update({ - where: { - id, - }, - data: { - name, - }, + }); + if (!repo) throw new Error("Repo not found"); + const updatedRepo = await prisma.repo.update({ + where: { + id, + }, + data: { + name, + }, + }); + return true; }); - return true; -} -async function deleteRepo(_, { id }, { userId }) { - if (!userId) throw Error("Unauthenticated"); - // only a repo owner can delete a repo. - const repo = await prisma.repo.findFirst({ - where: { - id, - owner: { - id: userId, +const deleteRepo = t.procedure + .input(z.object({ id: z.string() })) + .mutation(async ({ input: { id }, ctx: { userId } }) => { + if (!userId) throw Error("Unauthenticated"); + // only a repo owner can delete a repo. + const repo = await prisma.repo.findFirst({ + where: { + id, + owner: { + id: userId, + }, }, - }, - }); - if (!repo) throw new Error("Repo not found"); - // 1. delete all pods - await prisma.pod.deleteMany({ - where: { - repo: { - id: repo.id, + }); + if (!repo) throw new Error("Repo not found"); + // 1. delete all pods + await prisma.pod.deleteMany({ + where: { + repo: { + id: repo.id, + }, }, - }, - }); - // 2. delete UserRepoData - await prisma.userRepoData.deleteMany({ - where: { - repo: { + }); + // 2. delete UserRepoData + await prisma.userRepoData.deleteMany({ + where: { + repo: { + id: repo.id, + }, + }, + }); + // 3. delete the repo itself + await prisma.repo.delete({ + where: { id: repo.id, }, - }, - }); - // 3. delete the repo itself - await prisma.repo.delete({ - where: { - id: repo.id, - }, + }); + return true; }); - return true; -} -async function addCollaborator(_, { repoId, email }, { userId }) { - // make sure the repo is writable by this user - if (!userId) throw new Error("Not authenticated."); - // 1. find the repo - const repo = await prisma.repo.findFirst({ - where: { - id: repoId, - owner: { id: userId }, - }, - include: { - collaborators: true, - }, - }); - if (!repo) throw new Error("Repo not found or you are not the owner."); - // 2. find the user - const other = await prisma.user.findFirst({ - where: { - email, - }, - }); - if (!other) throw new Error("User not found"); - if (other.id === userId) throw new Error("You are already the owner."); - if (repo.collaborators.findIndex((user) => user.id === other.id) !== -1) - throw new Error("The user is already a collaborator."); - // 3. add the user to the repo - const res = await prisma.repo.update({ - where: { - id: repoId, - }, - data: { - collaborators: { connect: { id: other.id } }, - }, +const addCollaborator = t.procedure + .input(z.object({ repoId: z.string(), email: z.string() })) + .mutation(async ({ input: { repoId, email }, ctx: { userId } }) => { + // make sure the repo is writable by this user + if (!userId) throw new Error("Not authenticated."); + // 1. find the repo + const repo = await prisma.repo.findFirst({ + where: { + id: repoId, + owner: { id: userId }, + }, + include: { + collaborators: true, + }, + }); + if (!repo) throw new Error("Repo not found or you are not the owner."); + // 2. find the user + const other = await prisma.user.findFirst({ + where: { + email, + }, + }); + if (!other) throw new Error("User not found"); + if (other.id === userId) throw new Error("You are already the owner."); + if (repo.collaborators.findIndex((user) => user.id === other.id) !== -1) + throw new Error("The user is already a collaborator."); + // 3. add the user to the repo + const res = await prisma.repo.update({ + where: { + id: repoId, + }, + data: { + collaborators: { connect: { id: other.id } }, + }, + }); + return true; }); - return true; -} -async function deleteCollaborator(_, { repoId, collaboratorId }, { userId }) { - if (!userId) throw new Error("Not authenticated."); - // 1. find the repo - const repo = await prisma.repo.findFirst({ - where: { - id: repoId, - owner: { id: userId }, - }, - }); - // 2. delete the user from the repo - if (!repo) throw new Error("Repo not found or you are not the owner."); - const res = await prisma.repo.update({ - where: { - id: repoId, - }, - data: { - collaborators: { disconnect: { id: collaboratorId } }, - }, +const deleteCollaborator = t.procedure + .input(z.object({ repoId: z.string(), collaboratorId: z.string() })) + .mutation(async ({ input: { repoId, collaboratorId }, ctx: { userId } }) => { + if (!userId) throw new Error("Not authenticated."); + // 1. find the repo + const repo = await prisma.repo.findFirst({ + where: { + id: repoId, + owner: { id: userId }, + }, + }); + // 2. delete the user from the repo + if (!repo) throw new Error("Repo not found or you are not the owner."); + const res = await prisma.repo.update({ + where: { + id: repoId, + }, + data: { + collaborators: { disconnect: { id: collaboratorId } }, + }, + }); + return true; }); - return true; -} -async function star(_, { repoId }, { userId }) { - // make sure the repo is visible by this user - if (!userId) throw new Error("Not authenticated."); - let repo = await prisma.repo.findFirst({ - where: { - id: repoId, - OR: [ - { owner: { id: userId || "undefined" } }, - { collaborators: { some: { id: userId || "undefined" } } }, - { public: true }, - ], - }, - }); - if (!repo) throw new Error("Repo not found."); - // 3. add the user to the repo - await prisma.repo.update({ - where: { - id: repoId, - }, - data: { - stargazers: { connect: { id: userId } }, - }, +const star = t.procedure + .input(z.object({ repoId: z.string() })) + .mutation(async ({ input: { repoId }, ctx: { userId } }) => { + // make sure the repo is visible by this user + if (!userId) throw new Error("Not authenticated."); + let repo = await prisma.repo.findFirst({ + where: { + id: repoId, + OR: [ + { owner: { id: userId || "undefined" } }, + { collaborators: { some: { id: userId || "undefined" } } }, + { public: true }, + ], + }, + }); + if (!repo) throw new Error("Repo not found."); + // 3. add the user to the repo + await prisma.repo.update({ + where: { + id: repoId, + }, + data: { + stargazers: { connect: { id: userId } }, + }, + }); + return true; }); - return true; -} -async function unstar(_, { repoId }, { userId }) { - if (!userId) throw new Error("Not authenticated."); - // 1. find the repo - const repo = await prisma.repo.findFirst({ - where: { - id: repoId, - }, - }); - // 2. delete the user from the repo - if (!repo) throw new Error("Repo not found."); - await prisma.repo.update({ - where: { - id: repoId, - }, - data: { - stargazers: { disconnect: { id: userId } }, - }, +const unstar = t.procedure + .input(z.object({ repoId: z.string() })) + .mutation(async ({ input: { repoId }, ctx: { userId } }) => { + if (!userId) throw new Error("Not authenticated."); + // 1. find the repo + const repo = await prisma.repo.findFirst({ + where: { + id: repoId, + }, + }); + // 2. delete the user from the repo + if (!repo) throw new Error("Repo not found."); + await prisma.repo.update({ + where: { + id: repoId, + }, + data: { + stargazers: { disconnect: { id: userId } }, + }, + }); + return true; }); - return true; -} -async function copyRepo(_, { repoId }, { userId }) { - // Find the repo - const repo = await prisma.repo.findFirst({ - where: { - id: repoId, - }, - include: { - pods: { - include: { - parent: true, +const copyRepo = t.procedure + .input(z.object({ repoId: z.string() })) + .mutation(async ({ input: { repoId }, ctx: { userId } }) => { + if (!userId) throw Error("Unauthenticated"); + // Find the repo + const repo = await prisma.repo.findFirst({ + where: { + id: repoId, + }, + include: { + pods: { + include: { + parent: true, + }, }, }, - }, - }); - if (!repo) throw new Error("Repo not found"); + }); + if (!repo) throw new Error("Repo not found"); - // Create a new repo - const { id } = await createRepo(_, {}, { userId }); - // update the repo name - await prisma.repo.update({ - where: { - id, - }, - data: { - name: repo.name ? `Copy of ${repo.name}` : `Copy of ${repo.id}`, - }, - }); + // Create a new repo + const { id } = await prisma.repo.create({ + data: { + id: await nanoid(), + owner: { + connect: { + id: userId, + }, + }, + }, + include: { + owner: true, + }, + }); - // Create new id for each pod - const sourcePods = repo.pods; - const idMap = await sourcePods.reduce(async (acc, pod) => { - const map = await acc; - const newId = await nanoid(); - map.set(pod.id, newId); - return map; - }, Promise.resolve(new Map())); + // update the repo name + await prisma.repo.update({ + where: { + id, + }, + data: { + name: repo.name ? `Copy of ${repo.name}` : `Copy of ${repo.id}`, + }, + }); - // Update the parent/child relationship with their new ids - const targetPods = sourcePods.map((pod) => { - return { - ...pod, - id: idMap.get(pod.id), - parent: pod.parent ? { id: idMap.get(pod.parent.id) } : undefined, - repoId: id, - parentId: pod.parentId ? idMap.get(pod.parentId) : undefined, - }; - }); + // Create new id for each pod + const sourcePods = repo.pods; + const idMap = await sourcePods.reduce(async (acc, pod) => { + const map = await acc; + const newId = await nanoid(); + map.set(pod.id, newId); + return map; + }, Promise.resolve(new Map())); - // Add all nodes without parent/child relationship to the new repo. - // - // TODO: it updates the parent/child relationship automatically somehow,maybe - // because the parentId? Try to figure out why, then refactor addPods method. - await prisma.pod.createMany({ - data: targetPods.map((pod) => ({ - ...pod, - id: pod.id, - index: 0, - parent: undefined, - })), + // Update the parent/child relationship with their new ids + const targetPods = sourcePods.map((pod) => { + return { + ...pod, + id: idMap.get(pod.id), + parent: pod.parent ? { id: idMap.get(pod.parent.id) } : undefined, + repoId: id, + parentId: pod.parentId ? idMap.get(pod.parentId) : undefined, + }; + }); + + // Add all nodes without parent/child relationship to the new repo. + // + // TODO: it updates the parent/child relationship automatically somehow,maybe + // because the parentId? Try to figure out why, then refactor addPods method. + await prisma.pod.createMany({ + data: targetPods.map((pod) => ({ + ...pod, + id: pod.id, + index: 0, + parent: undefined, + })), + }); + + return id; }); - return id; -} +export const repoRouter = t.router({ + hello: t.procedure + .input(z.string().nullish()) + .query(({ input, ctx }) => `hello ${input ?? ctx.userId ?? "world"}`), + + // The actual resolvers + repo, + getDashboardRepos, -export const RepoResolver = { - Query: { - repo, - getDashboardRepos, - }, - Mutation: { - createRepo, - updateRepo, - deleteRepo, - copyRepo, - addCollaborator, - updateVisibility, - deleteCollaborator, - star, - unstar, - }, -}; + // mutations + createRepo, + updateRepo, + deleteRepo, + copyRepo, + addCollaborator, + updateVisibility, + deleteCollaborator, + star, + unstar, +}); diff --git a/apps/web-api/src/resolver_user.ts b/apps/web-api/src/resolver_user.ts index d04be227..536f7dbc 100644 --- a/apps/web-api/src/resolver_user.ts +++ b/apps/web-api/src/resolver_user.ts @@ -1,3 +1,6 @@ +import { t } from "./trpc"; +import { z } from "zod"; + import bcrypt from "bcryptjs"; import jwt from "jsonwebtoken"; import { OAuth2Client } from "google-auth-library"; @@ -8,21 +11,31 @@ import { lowercase, numbers } from "nanoid-dictionary"; import prisma from "@codepod/prisma"; +import { ENV } from "./utils"; + const nanoid = customAlphabet(lowercase + numbers, 20); -export function createUserResolver({ jwtSecret, googleClientId }) { - async function me(_, __, { userId }) { - if (!userId) throw Error("Unauthenticated"); - const user = await prisma.user.findFirst({ - where: { - id: userId, - }, - }); - if (!user) throw Error("Authorization token is not valid"); - return user; - } +const me = t.procedure.query(async ({ ctx: { userId } }) => { + if (!userId) throw Error("Unauthenticated"); + const user = await prisma.user.findFirst({ + where: { + id: userId, + }, + }); + if (!user) throw Error("Authorization token is not valid"); + return user; +}); - async function signup(_, { email, password, firstname, lastname }) { +const signup = t.procedure + .input( + z.object({ + email: z.string(), + password: z.string(), + firstname: z.string(), + lastname: z.string(), + }) + ) + .mutation(async ({ input: { email, password, firstname, lastname } }) => { const salt = await bcrypt.genSalt(10); const hashed = await bcrypt.hash(password, salt); const user = await prisma.user.create({ @@ -35,38 +48,46 @@ export function createUserResolver({ jwtSecret, googleClientId }) { }, }); return { - token: jwt.sign({ id: user.id }, jwtSecret, { + token: jwt.sign({ id: user.id }, ENV.JWT_SECRET, { expiresIn: "30d", }), }; - } + }); - async function updateUser(_, { email, firstname, lastname }, { userId }) { - if (!userId) throw Error("Unauthenticated"); - let user = await prisma.user.findFirst({ - where: { - id: userId, - }, - }); - if (!user) throw Error("User not found."); - if (user.id !== userId) { - throw new Error("You do not have access to the user."); +const updateUser = t.procedure + .input( + z.object({ email: z.string(), firstname: z.string(), lastname: z.string() }) + ) + .mutation( + async ({ input: { email, firstname, lastname }, ctx: { userId } }) => { + if (!userId) throw Error("Unauthenticated"); + let user = await prisma.user.findFirst({ + where: { + id: userId, + }, + }); + if (!user) throw Error("User not found."); + if (user.id !== userId) { + throw new Error("You do not have access to the user."); + } + // do the udpate + await prisma.user.update({ + where: { + id: userId, + }, + data: { + firstname, + lastname, + email, + }, + }); + return true; } - // do the udpate - await prisma.user.update({ - where: { - id: userId, - }, - data: { - firstname, - lastname, - email, - }, - }); - return true; - } + ); - async function login(_, { email, password }) { +const login = t.procedure + .input(z.object({ email: z.string(), password: z.string() })) + .mutation(async ({ input: { email, password } }) => { // FIXME findUnique seems broken https://github.com/prisma/prisma/issues/5071 const user = await prisma.user.findFirst({ where: { @@ -82,19 +103,21 @@ export function createUserResolver({ jwtSecret, googleClientId }) { return { id: user.id, email: user.email, - token: jwt.sign({ id: user.id }, jwtSecret, { + token: jwt.sign({ id: user.id }, ENV.JWT_SECRET, { expiresIn: "30d", }), }; } - } + }); - const client = new OAuth2Client(googleClientId); +const client = new OAuth2Client(ENV.GOOGLE_CLIENT_ID); - async function loginWithGoogle(_, { idToken }) { +const loginWithGoogle = t.procedure + .input(z.object({ idToken: z.string() })) + .mutation(async ({ input: { idToken } }) => { const ticket = await client.verifyIdToken({ idToken: idToken, - audience: googleClientId, // Specify the CLIENT_ID of the app that accesses the backend + audience: ENV.GOOGLE_CLIENT_ID, // Specify the CLIENT_ID of the app that accesses the backend // Or, if multiple clients access the backend: //[CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3] }); @@ -122,21 +145,21 @@ export function createUserResolver({ jwtSecret, googleClientId }) { return { id: user.id, email: user.email, - token: jwt.sign({ id: user.id }, jwtSecret, { + token: jwt.sign({ id: user.id }, ENV.JWT_SECRET, { expiresIn: "30d", }), }; - } + }); - return { - Query: { - me, - }, - Mutation: { - login, - loginWithGoogle, - signup, - updateUser, - }, - }; -} +export const userRouter = t.router({ + hello: t.procedure + .input(z.string().nullish()) + .query(({ input, ctx }) => `hello ${input ?? ctx.userId ?? "world"}`), + + // The actual resolvers + me, + login, + loginWithGoogle, + signup, + updateUser, +}); diff --git a/apps/web-api/src/server.ts b/apps/web-api/src/server.ts index e79d3502..4c621c15 100644 --- a/apps/web-api/src/server.ts +++ b/apps/web-api/src/server.ts @@ -1,83 +1,13 @@ -import { WebSocketServer } from "ws"; - import express from "express"; import http from "http"; -import { ApolloServer, gql } from "apollo-server-express"; -import jwt from "jsonwebtoken"; - -import { - ApolloServerPluginLandingPageProductionDefault, - ApolloServerPluginLandingPageLocalDefault, -} from "apollo-server-core"; - -import { typeDefs } from "./typedefs"; -import { createUserResolver } from "./resolver_user"; -import { RepoResolver } from "./resolver_repo"; - -if (!process.env.JWT_SECRET) { - throw new Error("JWT_SECRET env variable is not set."); -} -// FIXME even if this is undefined, the token verification still works. Looks -// like I only need to set client ID in the frontend? -if (!process.env.GOOGLE_CLIENT_ID) { - console.log("WARNING: GOOGLE_CLIENT_ID env variable is not set."); -} - -const UserResolver = createUserResolver({ - jwtSecret: process.env.JWT_SECRET, - googleClientId: process.env.GOOGLE_CLIENT_ID, -}); - -export const resolvers = { - Query: { - hello: () => { - return "Hello world!"; - }, - ...UserResolver.Query, - ...RepoResolver.Query, - }, - Mutation: { - ...UserResolver.Mutation, - ...RepoResolver.Mutation, - }, -}; - -interface TokenInterface { - id: string; -} +import { expressMiddleware } from "./trpc"; export async function startServer({ port }) { - const apollo = new ApolloServer({ - typeDefs, - resolvers, - context: ({ req }) => { - const token = req?.headers?.authorization?.slice(7); - let userId; - - console.log("in context", token); - - if (token) { - const decoded = jwt.verify( - token, - process.env.JWT_SECRET as string - ) as TokenInterface; - userId = decoded.id; - } - return { - userId, - }; - }, - plugins: [ApolloServerPluginLandingPageLocalDefault({ embed: true })], - }); const expapp = express(); expapp.use(express.json({ limit: "20mb" })); + expapp.use("/trpc", expressMiddleware); const http_server = http.createServer(expapp); - const wss = new WebSocketServer({ server: http_server }); - // graphql api will be available at /graphql - - await apollo.start(); - apollo.applyMiddleware({ app: expapp }); http_server.listen({ port }, () => { console.log(`🚀 Server ready at http://localhost:${port}`); diff --git a/apps/web-api/src/trpc.ts b/apps/web-api/src/trpc.ts new file mode 100644 index 00000000..9bdcf527 --- /dev/null +++ b/apps/web-api/src/trpc.ts @@ -0,0 +1,62 @@ +import { z } from "zod"; +import { inferAsyncReturnType, initTRPC } from "@trpc/server"; +import * as trpcExpress from "@trpc/server/adapters/express"; +import jwt from "jsonwebtoken"; + +import { ENV } from "./utils"; + +import { userRouter } from "./resolver_user"; +import { repoRouter } from "./resolver_repo"; + +// created for each request +const createContext = ({ + req, + res, +}: trpcExpress.CreateExpressContextOptions) => { + const token = req?.headers?.authorization?.slice(7); + let userId; + + console.log("in context", token); + + if (token) { + const decoded = jwt.verify(token, ENV.JWT_SECRET) as { + id: string; + }; + userId = decoded.id; + } + return { + userId, + }; +}; // no context + +type Context = inferAsyncReturnType; +export const t = initTRPC.context().create(); +// export const t = initTRPC.create(); + +export const appRouter = t.router({ + hello: t.procedure + .input(z.string().nullish()) + .query(({ input, ctx }) => `hello ${input ?? ctx.userId ?? "world"}`), + getUser: t.procedure.input(z.string()).query((opts) => { + opts.input; // string + return { id: opts.input, name: "Bilbo" }; + }), + createUser: t.procedure + .input(z.object({ name: z.string().min(5) })) + .mutation(async (opts) => { + // use your ORM of choice + // return await UserModel.create({ + // data: opts.input, + // }); + }), + user: userRouter, + repo: repoRouter, +}); + +// export type definition of API +export type AppRouter = typeof appRouter; + +export const expressMiddleware = trpcExpress.createExpressMiddleware({ + router: appRouter, + createContext, +}); diff --git a/apps/web-api/src/utils.ts b/apps/web-api/src/utils.ts new file mode 100644 index 00000000..a313c1f5 --- /dev/null +++ b/apps/web-api/src/utils.ts @@ -0,0 +1,10 @@ +import { z } from "zod"; + +const envSchema = z.object({ + JWT_SECRET: z.string(), + // FIXME even if this is undefined, the token verification still works. Looks + // like I only need to set client ID in the frontend? + GOOGLE_CLIENT_ID: z.string().optional(), +}); + +export const ENV = envSchema.parse(process.env); diff --git a/bun.lockb b/bun.lockb index c8adb5c10ec0dd23446f28418f6b5157a3cf5cc3..8a0c04293fad7551fd95cb45c0ee89becd25aff8 100755 GIT binary patch delta 95729 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