mirror of
https://github.com/hanzoai/captable.git
synced 2026-10-16 14:21:29 +00:00
feat: minor cleanups
This commit is contained in:
@@ -63,15 +63,6 @@ const create = (app: PublicAPI) => {
|
||||
const { company, user } = await withCompanyAuth(c);
|
||||
|
||||
const body = await c.req.json();
|
||||
const zodParsed = RequestBodySchema.safeParse(body);
|
||||
|
||||
if (!zodParsed.success) {
|
||||
const errorMessage = zodParsed.error.errors.map((err) => err.message);
|
||||
throw new ApiError({
|
||||
code: "BAD_REQUEST",
|
||||
message: String(errorMessage),
|
||||
});
|
||||
}
|
||||
|
||||
const payload = {
|
||||
companyId: company.id,
|
||||
@@ -81,13 +72,10 @@ const create = (app: PublicAPI) => {
|
||||
id: user.id,
|
||||
name: user.name as string,
|
||||
},
|
||||
data: zodParsed.data as TypeStakeholderArray,
|
||||
data: body as TypeStakeholderArray,
|
||||
};
|
||||
try {
|
||||
await addStakeholders({
|
||||
db,
|
||||
payload,
|
||||
});
|
||||
await addStakeholders(payload);
|
||||
} catch (error) {
|
||||
if (error instanceof Prisma.PrismaClientKnownRequestError) {
|
||||
if (error.code === "P2002") {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { withCompanyAuth } from "@/server/api/auth";
|
||||
import { ErrorResponses } from "@/server/api/error";
|
||||
import { ApiError, ErrorResponses } from "@/server/api/error";
|
||||
import type { PublicAPI } from "@/server/api/hono";
|
||||
import {
|
||||
StakeholderSchema,
|
||||
@@ -59,11 +59,25 @@ const route = createRoute({
|
||||
},
|
||||
});
|
||||
|
||||
const delete_ = (app: PublicAPI) => {
|
||||
const deleteOne = (app: PublicAPI) => {
|
||||
app.openapi(route, async (c: Context) => {
|
||||
const { company, user } = await withCompanyAuth(c);
|
||||
const { stakeholderId } = c.req.param();
|
||||
|
||||
const foundStakeholder = await db.stakeholder.findUnique({
|
||||
where: {
|
||||
id: stakeholderId,
|
||||
companyId: company.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (!foundStakeholder) {
|
||||
throw new ApiError({
|
||||
code: "NOT_FOUND",
|
||||
message: "No stakeholder with the provided Id",
|
||||
});
|
||||
}
|
||||
|
||||
const payload = {
|
||||
companyId: company.id,
|
||||
stakeholderId: stakeholderId as string,
|
||||
@@ -72,10 +86,7 @@ const delete_ = (app: PublicAPI) => {
|
||||
userAgent: getHonoUserAgent(c.req),
|
||||
};
|
||||
|
||||
const { deletedStakeholder } = await deleteStakeholder({
|
||||
db,
|
||||
payload,
|
||||
});
|
||||
const { deletedStakeholder } = await deleteStakeholder(payload);
|
||||
|
||||
return c.json(
|
||||
{
|
||||
@@ -87,4 +98,4 @@ const delete_ = (app: PublicAPI) => {
|
||||
});
|
||||
};
|
||||
|
||||
export default delete_;
|
||||
export default deleteOne;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { PublicAPI } from "@/server/api/hono";
|
||||
import create from "./create";
|
||||
import delete_ from "./delete";
|
||||
import deleteOne from "./delete";
|
||||
import getMany from "./getMany";
|
||||
import getOne from "./getOne";
|
||||
import update from "./update";
|
||||
@@ -10,7 +10,7 @@ const registerStakeholderRoutes = (api: PublicAPI) => {
|
||||
getOne(api);
|
||||
getMany(api);
|
||||
update(api);
|
||||
delete_(api);
|
||||
deleteOne(api);
|
||||
};
|
||||
|
||||
export default registerStakeholderRoutes;
|
||||
|
||||
@@ -64,6 +64,19 @@ const update = (app: PublicAPI) => {
|
||||
console.log({ body });
|
||||
const { id, ...rest } = body;
|
||||
|
||||
const foundStakeholder = await db.stakeholder.findFirst({
|
||||
where: {
|
||||
id: stakeholderId,
|
||||
},
|
||||
});
|
||||
|
||||
if (!foundStakeholder) {
|
||||
throw new ApiError({
|
||||
code: "NOT_FOUND",
|
||||
message: "No stakeholder with provided id",
|
||||
});
|
||||
}
|
||||
|
||||
const payload = {
|
||||
stakeholderId: stakeholderId,
|
||||
companyId: company.id,
|
||||
@@ -76,10 +89,7 @@ const update = (app: PublicAPI) => {
|
||||
},
|
||||
};
|
||||
|
||||
const { updatedStakeholder } = await updateStakeholder({
|
||||
db,
|
||||
payload,
|
||||
});
|
||||
const { updatedStakeholder } = await updateStakeholder(payload);
|
||||
|
||||
if (!updatedStakeholder) {
|
||||
throw new ApiError({
|
||||
|
||||
@@ -1,25 +1,19 @@
|
||||
import { Audit } from "@/server/audit";
|
||||
import { db } from "@/server/db";
|
||||
import type { TypeStakeholderArray } from "@/trpc/routers/stakeholder-router/schema";
|
||||
import type { PrismaClient } from "@prisma/client";
|
||||
|
||||
type AddStakeholderOptions = {
|
||||
db: PrismaClient;
|
||||
payload: {
|
||||
companyId: string;
|
||||
requestIp: string;
|
||||
userAgent: string;
|
||||
user: {
|
||||
id: string;
|
||||
name: string;
|
||||
};
|
||||
data: TypeStakeholderArray;
|
||||
companyId: string;
|
||||
requestIp: string;
|
||||
userAgent: string;
|
||||
user: {
|
||||
id: string;
|
||||
name: string;
|
||||
};
|
||||
data: TypeStakeholderArray;
|
||||
};
|
||||
|
||||
export const addStakeholders = async ({
|
||||
db,
|
||||
payload,
|
||||
}: AddStakeholderOptions) => {
|
||||
export const addStakeholders = async (payload: AddStakeholderOptions) => {
|
||||
const { companyId, requestIp, userAgent, user, data } = payload;
|
||||
|
||||
await db.$transaction(async (tx) => {
|
||||
|
||||
@@ -1,42 +1,20 @@
|
||||
import { ApiError } from "@/server/api/error";
|
||||
import { Audit } from "@/server/audit";
|
||||
import type { PrismaClient } from "@prisma/client";
|
||||
import { commonRouter } from "./../../../trpc/routers/common/router";
|
||||
import { db } from "@/server/db";
|
||||
|
||||
type DeleteStakeholderOption = {
|
||||
db: PrismaClient;
|
||||
payload: {
|
||||
companyId: string;
|
||||
stakeholderId: string;
|
||||
requestIp: string;
|
||||
userAgent: string;
|
||||
user: {
|
||||
id: string;
|
||||
name: string;
|
||||
};
|
||||
companyId: string;
|
||||
stakeholderId: string;
|
||||
requestIp: string;
|
||||
userAgent: string;
|
||||
user: {
|
||||
id: string;
|
||||
name: string;
|
||||
};
|
||||
};
|
||||
|
||||
export const deleteStakeholder = async ({
|
||||
db,
|
||||
payload,
|
||||
}: DeleteStakeholderOption) => {
|
||||
export const deleteStakeholder = async (payload: DeleteStakeholderOption) => {
|
||||
const { companyId, stakeholderId, requestIp, userAgent, user } = payload;
|
||||
|
||||
const foundStakeholder = await db.stakeholder.findUnique({
|
||||
where: {
|
||||
id: stakeholderId,
|
||||
companyId,
|
||||
},
|
||||
});
|
||||
|
||||
if (!foundStakeholder) {
|
||||
throw new ApiError({
|
||||
code: "NOT_FOUND",
|
||||
message: "No stakeholder with the provided Id",
|
||||
});
|
||||
}
|
||||
|
||||
const { deletedStakeholder } = await db.$transaction(async (tx) => {
|
||||
const deletedStakeholder = await tx.stakeholder.delete({
|
||||
where: {
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
import type { PrismaClient } from "@prisma/client";
|
||||
import { db } from "@/server/db";
|
||||
|
||||
type GetStakeholderById = {
|
||||
db: PrismaClient;
|
||||
stakeholderId: string;
|
||||
};
|
||||
|
||||
export const getStakeholderById = async ({
|
||||
db,
|
||||
stakeholderId,
|
||||
}: GetStakeholderById) => {
|
||||
return await db.stakeholder.findUniqueOrThrow({
|
||||
|
||||
@@ -1,42 +1,22 @@
|
||||
import { ApiError } from "@/server/api/error";
|
||||
import { Audit } from "@/server/audit";
|
||||
import { db } from "@/server/db";
|
||||
import type { UpdateStakeholderMutationType } from "@/trpc/routers/stakeholder-router/schema";
|
||||
import type { PrismaClient } from "@prisma/client";
|
||||
|
||||
export type UpdateStakeholderOptions = {
|
||||
db: PrismaClient;
|
||||
payload: {
|
||||
stakeholderId: string;
|
||||
companyId: string;
|
||||
requestIp: string;
|
||||
userAgent: string;
|
||||
user: {
|
||||
id: string;
|
||||
name: string;
|
||||
};
|
||||
data: Omit<UpdateStakeholderMutationType, "id">;
|
||||
stakeholderId: string;
|
||||
companyId: string;
|
||||
requestIp: string;
|
||||
userAgent: string;
|
||||
user: {
|
||||
id: string;
|
||||
name: string;
|
||||
};
|
||||
data: Omit<UpdateStakeholderMutationType, "id">;
|
||||
};
|
||||
|
||||
export const updateStakeholder = async ({
|
||||
db,
|
||||
payload,
|
||||
}: UpdateStakeholderOptions) => {
|
||||
export const updateStakeholder = async (payload: UpdateStakeholderOptions) => {
|
||||
const { requestIp, userAgent, user, data } = payload;
|
||||
|
||||
const foundStakeholder = await db.stakeholder.findFirst({
|
||||
where: {
|
||||
id: payload.stakeholderId,
|
||||
},
|
||||
});
|
||||
|
||||
if (!foundStakeholder) {
|
||||
throw new ApiError({
|
||||
code: "NOT_FOUND",
|
||||
message: "No stakeholder with provided id",
|
||||
});
|
||||
}
|
||||
|
||||
const { updatedStakeholder } = await db.$transaction(async (tx) => {
|
||||
const updatedStakeholder = await db.stakeholder.update({
|
||||
where: {
|
||||
|
||||
Reference in New Issue
Block a user