fix: add empty success responses (#1600)
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
import { TRPCError } from '@trpc/server';
|
import { TRPCError } from '@trpc/server';
|
||||||
import { DateTime } from 'luxon';
|
import { DateTime } from 'luxon';
|
||||||
import { z } from 'zod';
|
|
||||||
|
|
||||||
import { getServerLimits } from '@documenso/ee/server-only/limits/server';
|
import { getServerLimits } from '@documenso/ee/server-only/limits/server';
|
||||||
import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
|
import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
|
||||||
@@ -42,6 +41,7 @@ import {
|
|||||||
ZFindDocumentAuditLogsQuerySchema,
|
ZFindDocumentAuditLogsQuerySchema,
|
||||||
ZFindDocumentsRequestSchema,
|
ZFindDocumentsRequestSchema,
|
||||||
ZFindDocumentsResponseSchema,
|
ZFindDocumentsResponseSchema,
|
||||||
|
ZGenericSuccessResponse,
|
||||||
ZGetDocumentByIdQuerySchema,
|
ZGetDocumentByIdQuerySchema,
|
||||||
ZGetDocumentByTokenQuerySchema,
|
ZGetDocumentByTokenQuerySchema,
|
||||||
ZGetDocumentWithDetailsByIdRequestSchema,
|
ZGetDocumentWithDetailsByIdRequestSchema,
|
||||||
@@ -52,6 +52,7 @@ import {
|
|||||||
ZSearchDocumentsMutationSchema,
|
ZSearchDocumentsMutationSchema,
|
||||||
ZSetPasswordForDocumentMutationSchema,
|
ZSetPasswordForDocumentMutationSchema,
|
||||||
ZSetSigningOrderForDocumentMutationSchema,
|
ZSetSigningOrderForDocumentMutationSchema,
|
||||||
|
ZSuccessResponseSchema,
|
||||||
ZUpdateDocumentRequestSchema,
|
ZUpdateDocumentRequestSchema,
|
||||||
ZUpdateDocumentResponseSchema,
|
ZUpdateDocumentResponseSchema,
|
||||||
} from './schema';
|
} from './schema';
|
||||||
@@ -326,7 +327,7 @@ export const documentRouter = router({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.input(ZDeleteDocumentMutationSchema)
|
.input(ZDeleteDocumentMutationSchema)
|
||||||
.output(z.void())
|
.output(ZSuccessResponseSchema)
|
||||||
.mutation(async ({ input, ctx }) => {
|
.mutation(async ({ input, ctx }) => {
|
||||||
const { teamId } = ctx;
|
const { teamId } = ctx;
|
||||||
const { documentId } = input;
|
const { documentId } = input;
|
||||||
@@ -339,6 +340,8 @@ export const documentRouter = router({
|
|||||||
teamId,
|
teamId,
|
||||||
requestMetadata: ctx.metadata,
|
requestMetadata: ctx.metadata,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return ZGenericSuccessResponse;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -481,18 +484,20 @@ export const documentRouter = router({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.input(ZResendDocumentMutationSchema)
|
.input(ZResendDocumentMutationSchema)
|
||||||
.output(z.void())
|
.output(ZSuccessResponseSchema)
|
||||||
.mutation(async ({ input, ctx }) => {
|
.mutation(async ({ input, ctx }) => {
|
||||||
const { teamId } = ctx;
|
const { teamId } = ctx;
|
||||||
const { documentId, recipients } = input;
|
const { documentId, recipients } = input;
|
||||||
|
|
||||||
return await resendDocument({
|
await resendDocument({
|
||||||
userId: ctx.user.id,
|
userId: ctx.user.id,
|
||||||
teamId,
|
teamId,
|
||||||
documentId,
|
documentId,
|
||||||
recipients,
|
recipients,
|
||||||
requestMetadata: ctx.metadata,
|
requestMetadata: ctx.metadata,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return ZGenericSuccessResponse;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -34,6 +34,19 @@ import {
|
|||||||
|
|
||||||
import { ZCreateRecipientSchema } from '../recipient-router/schema';
|
import { ZCreateRecipientSchema } from '../recipient-router/schema';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Required for empty responses since we currently can't 201 requests for our openapi setup.
|
||||||
|
*
|
||||||
|
* Without this it will throw an error in Speakeasy SDK when it tries to parse an empty response.
|
||||||
|
*/
|
||||||
|
export const ZSuccessResponseSchema = z.object({
|
||||||
|
success: z.literal(true),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZGenericSuccessResponse = {
|
||||||
|
success: true,
|
||||||
|
} satisfies z.infer<typeof ZSuccessResponseSchema>;
|
||||||
|
|
||||||
export const ZDocumentTitleSchema = z
|
export const ZDocumentTitleSchema = z
|
||||||
.string()
|
.string()
|
||||||
.trim()
|
.trim()
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
import { z } from 'zod';
|
|
||||||
|
|
||||||
import { createDocumentFields } from '@documenso/lib/server-only/field/create-document-fields';
|
import { createDocumentFields } from '@documenso/lib/server-only/field/create-document-fields';
|
||||||
import { createTemplateFields } from '@documenso/lib/server-only/field/create-template-fields';
|
import { createTemplateFields } from '@documenso/lib/server-only/field/create-template-fields';
|
||||||
import { deleteDocumentField } from '@documenso/lib/server-only/field/delete-document-field';
|
import { deleteDocumentField } from '@documenso/lib/server-only/field/delete-document-field';
|
||||||
@@ -13,6 +11,7 @@ import { updateDocumentFields } from '@documenso/lib/server-only/field/update-do
|
|||||||
import { updateTemplateFields } from '@documenso/lib/server-only/field/update-template-fields';
|
import { updateTemplateFields } from '@documenso/lib/server-only/field/update-template-fields';
|
||||||
import { extractNextApiRequestMetadata } from '@documenso/lib/universal/extract-request-metadata';
|
import { extractNextApiRequestMetadata } from '@documenso/lib/universal/extract-request-metadata';
|
||||||
|
|
||||||
|
import { ZGenericSuccessResponse, ZSuccessResponseSchema } from '../document-router/schema';
|
||||||
import { authenticatedProcedure, procedure, router } from '../trpc';
|
import { authenticatedProcedure, procedure, router } from '../trpc';
|
||||||
import {
|
import {
|
||||||
ZCreateDocumentFieldRequestSchema,
|
ZCreateDocumentFieldRequestSchema,
|
||||||
@@ -200,7 +199,7 @@ export const fieldRouter = router({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.input(ZDeleteDocumentFieldRequestSchema)
|
.input(ZDeleteDocumentFieldRequestSchema)
|
||||||
.output(z.void())
|
.output(ZSuccessResponseSchema)
|
||||||
.mutation(async ({ input, ctx }) => {
|
.mutation(async ({ input, ctx }) => {
|
||||||
const { teamId } = ctx;
|
const { teamId } = ctx;
|
||||||
const { fieldId } = input;
|
const { fieldId } = input;
|
||||||
@@ -211,6 +210,8 @@ export const fieldRouter = router({
|
|||||||
fieldId,
|
fieldId,
|
||||||
requestMetadata: ctx.metadata,
|
requestMetadata: ctx.metadata,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return ZGenericSuccessResponse;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -396,7 +397,7 @@ export const fieldRouter = router({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.input(ZDeleteTemplateFieldRequestSchema)
|
.input(ZDeleteTemplateFieldRequestSchema)
|
||||||
.output(z.void())
|
.output(ZSuccessResponseSchema)
|
||||||
.mutation(async ({ input, ctx }) => {
|
.mutation(async ({ input, ctx }) => {
|
||||||
const { teamId } = ctx;
|
const { teamId } = ctx;
|
||||||
const { fieldId } = input;
|
const { fieldId } = input;
|
||||||
@@ -406,6 +407,8 @@ export const fieldRouter = router({
|
|||||||
teamId,
|
teamId,
|
||||||
fieldId,
|
fieldId,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return ZGenericSuccessResponse;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
import { z } from 'zod';
|
|
||||||
|
|
||||||
import { completeDocumentWithToken } from '@documenso/lib/server-only/document/complete-document-with-token';
|
import { completeDocumentWithToken } from '@documenso/lib/server-only/document/complete-document-with-token';
|
||||||
import { rejectDocumentWithToken } from '@documenso/lib/server-only/document/reject-document-with-token';
|
import { rejectDocumentWithToken } from '@documenso/lib/server-only/document/reject-document-with-token';
|
||||||
import { createDocumentRecipients } from '@documenso/lib/server-only/recipient/create-document-recipients';
|
import { createDocumentRecipients } from '@documenso/lib/server-only/recipient/create-document-recipients';
|
||||||
@@ -13,6 +11,7 @@ import { updateDocumentRecipients } from '@documenso/lib/server-only/recipient/u
|
|||||||
import { updateTemplateRecipients } from '@documenso/lib/server-only/recipient/update-template-recipients';
|
import { updateTemplateRecipients } from '@documenso/lib/server-only/recipient/update-template-recipients';
|
||||||
import { extractNextApiRequestMetadata } from '@documenso/lib/universal/extract-request-metadata';
|
import { extractNextApiRequestMetadata } from '@documenso/lib/universal/extract-request-metadata';
|
||||||
|
|
||||||
|
import { ZGenericSuccessResponse, ZSuccessResponseSchema } from '../document-router/schema';
|
||||||
import { authenticatedProcedure, procedure, router } from '../trpc';
|
import { authenticatedProcedure, procedure, router } from '../trpc';
|
||||||
import {
|
import {
|
||||||
ZCompleteDocumentWithTokenMutationSchema,
|
ZCompleteDocumentWithTokenMutationSchema,
|
||||||
@@ -200,7 +199,7 @@ export const recipientRouter = router({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.input(ZDeleteDocumentRecipientRequestSchema)
|
.input(ZDeleteDocumentRecipientRequestSchema)
|
||||||
.output(z.void())
|
.output(ZSuccessResponseSchema)
|
||||||
.mutation(async ({ input, ctx }) => {
|
.mutation(async ({ input, ctx }) => {
|
||||||
const { teamId } = ctx;
|
const { teamId } = ctx;
|
||||||
const { recipientId } = input;
|
const { recipientId } = input;
|
||||||
@@ -211,6 +210,8 @@ export const recipientRouter = router({
|
|||||||
recipientId,
|
recipientId,
|
||||||
requestMetadata: ctx.metadata,
|
requestMetadata: ctx.metadata,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return ZGenericSuccessResponse;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -391,7 +392,7 @@ export const recipientRouter = router({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.input(ZDeleteTemplateRecipientRequestSchema)
|
.input(ZDeleteTemplateRecipientRequestSchema)
|
||||||
.output(z.void())
|
.output(ZSuccessResponseSchema)
|
||||||
.mutation(async ({ input, ctx }) => {
|
.mutation(async ({ input, ctx }) => {
|
||||||
const { teamId } = ctx;
|
const { teamId } = ctx;
|
||||||
const { recipientId } = input;
|
const { recipientId } = input;
|
||||||
@@ -401,6 +402,8 @@ export const recipientRouter = router({
|
|||||||
userId: ctx.user.id,
|
userId: ctx.user.id,
|
||||||
teamId,
|
teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return ZGenericSuccessResponse;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
import { z } from 'zod';
|
|
||||||
|
|
||||||
import { getServerLimits } from '@documenso/ee/server-only/limits/server';
|
import { getServerLimits } from '@documenso/ee/server-only/limits/server';
|
||||||
import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error';
|
import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error';
|
||||||
import { getDocumentWithDetailsById } from '@documenso/lib/server-only/document/get-document-with-details-by-id';
|
import { getDocumentWithDetailsById } from '@documenso/lib/server-only/document/get-document-with-details-by-id';
|
||||||
@@ -24,6 +22,7 @@ import { toggleTemplateDirectLink } from '@documenso/lib/server-only/template/to
|
|||||||
import { updateTemplate } from '@documenso/lib/server-only/template/update-template';
|
import { updateTemplate } from '@documenso/lib/server-only/template/update-template';
|
||||||
import type { Document } from '@documenso/prisma/client';
|
import type { Document } from '@documenso/prisma/client';
|
||||||
|
|
||||||
|
import { ZGenericSuccessResponse, ZSuccessResponseSchema } from '../document-router/schema';
|
||||||
import { authenticatedProcedure, maybeAuthenticatedProcedure, router } from '../trpc';
|
import { authenticatedProcedure, maybeAuthenticatedProcedure, router } from '../trpc';
|
||||||
import {
|
import {
|
||||||
ZCreateDocumentFromDirectTemplateRequestSchema,
|
ZCreateDocumentFromDirectTemplateRequestSchema,
|
||||||
@@ -195,7 +194,7 @@ export const templateRouter = router({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.input(ZDeleteTemplateMutationSchema)
|
.input(ZDeleteTemplateMutationSchema)
|
||||||
.output(z.void())
|
.output(ZSuccessResponseSchema)
|
||||||
.mutation(async ({ input, ctx }) => {
|
.mutation(async ({ input, ctx }) => {
|
||||||
const { teamId } = ctx;
|
const { teamId } = ctx;
|
||||||
const { templateId } = input;
|
const { templateId } = input;
|
||||||
@@ -203,6 +202,8 @@ export const templateRouter = router({
|
|||||||
const userId = ctx.user.id;
|
const userId = ctx.user.id;
|
||||||
|
|
||||||
await deleteTemplate({ userId, id: templateId, teamId });
|
await deleteTemplate({ userId, id: templateId, teamId });
|
||||||
|
|
||||||
|
return ZGenericSuccessResponse;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -352,7 +353,7 @@ export const templateRouter = router({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.input(ZDeleteTemplateDirectLinkRequestSchema)
|
.input(ZDeleteTemplateDirectLinkRequestSchema)
|
||||||
.output(z.void())
|
.output(ZSuccessResponseSchema)
|
||||||
.mutation(async ({ input, ctx }) => {
|
.mutation(async ({ input, ctx }) => {
|
||||||
const { teamId } = ctx;
|
const { teamId } = ctx;
|
||||||
const { templateId } = input;
|
const { templateId } = input;
|
||||||
@@ -360,6 +361,8 @@ export const templateRouter = router({
|
|||||||
const userId = ctx.user.id;
|
const userId = ctx.user.id;
|
||||||
|
|
||||||
await deleteTemplateDirectLink({ userId, teamId, templateId });
|
await deleteTemplateDirectLink({ userId, teamId, templateId });
|
||||||
|
|
||||||
|
return ZGenericSuccessResponse;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user