fix: handle bracket notation arrays (#2178)

Co-authored-by: David Nguyen <davidngu28@gmail.com>
This commit is contained in:
Lucas Smith
2025-11-12 16:38:06 +11:00
committed by GitHub
parent 378dd605b9
commit 68a3608aee
43 changed files with 137 additions and 68 deletions

View File

@ -41,10 +41,14 @@ export const createAttachmentRoute = authenticatedProcedure
type: EnvelopeType.DOCUMENT,
});
await createAttachment({
const attachment = await createAttachment({
envelopeId: envelope.id,
teamId,
userId,
data,
});
return {
id: attachment.id,
};
});

View File

@ -8,7 +8,9 @@ export const ZCreateAttachmentRequestSchema = z.object({
}),
});
export const ZCreateAttachmentResponseSchema = z.void();
export const ZCreateAttachmentResponseSchema = z.object({
id: z.string(),
});
export type TCreateAttachmentRequest = z.infer<typeof ZCreateAttachmentRequestSchema>;
export type TCreateAttachmentResponse = z.infer<typeof ZCreateAttachmentResponseSchema>;

View File

@ -1,5 +1,6 @@
import { deleteAttachment } from '@documenso/lib/server-only/envelope-attachment/delete-attachment';
import { ZGenericSuccessResponse } from '../../schema';
import { authenticatedProcedure } from '../../trpc';
import {
ZDeleteAttachmentRequestSchema,
@ -33,4 +34,6 @@ export const deleteAttachmentRoute = authenticatedProcedure
userId,
teamId,
});
return ZGenericSuccessResponse;
});

View File

@ -1,10 +1,12 @@
import { z } from 'zod';
import { ZSuccessResponseSchema } from '../../schema';
export const ZDeleteAttachmentRequestSchema = z.object({
id: z.string(),
});
export const ZDeleteAttachmentResponseSchema = z.void();
export const ZDeleteAttachmentResponseSchema = ZSuccessResponseSchema;
export type TDeleteAttachmentRequest = z.infer<typeof ZDeleteAttachmentRequestSchema>;
export type TDeleteAttachmentResponse = z.infer<typeof ZDeleteAttachmentResponseSchema>;

View File

@ -1,5 +1,6 @@
import { updateAttachment } from '@documenso/lib/server-only/envelope-attachment/update-attachment';
import { ZGenericSuccessResponse } from '../../schema';
import { authenticatedProcedure } from '../../trpc';
import {
ZUpdateAttachmentRequestSchema,
@ -34,4 +35,6 @@ export const updateAttachmentRoute = authenticatedProcedure
teamId,
data,
});
return ZGenericSuccessResponse;
});

View File

@ -1,5 +1,7 @@
import { z } from 'zod';
import { ZSuccessResponseSchema } from '../../schema';
export const ZUpdateAttachmentRequestSchema = z.object({
id: z.string(),
data: z.object({
@ -8,7 +10,7 @@ export const ZUpdateAttachmentRequestSchema = z.object({
}),
});
export const ZUpdateAttachmentResponseSchema = z.void();
export const ZUpdateAttachmentResponseSchema = ZSuccessResponseSchema;
export type TUpdateAttachmentRequest = z.infer<typeof ZUpdateAttachmentRequestSchema>;
export type TUpdateAttachmentResponse = z.infer<typeof ZUpdateAttachmentResponseSchema>;

View File

@ -1,12 +1,12 @@
import { deleteDocument } from '@documenso/lib/server-only/document/delete-document';
import { ZGenericSuccessResponse } from '../schema';
import { authenticatedProcedure } from '../trpc';
import {
ZDeleteDocumentRequestSchema,
ZDeleteDocumentResponseSchema,
deleteDocumentMeta,
} from './delete-document.types';
import { ZGenericSuccessResponse } from './schema';
export const deleteDocumentRoute = authenticatedProcedure
.meta(deleteDocumentMeta)

View File

@ -1,7 +1,7 @@
import { z } from 'zod';
import { ZSuccessResponseSchema } from '../schema';
import type { TrpcRouteMeta } from '../trpc';
import { ZSuccessResponseSchema } from './schema';
export const deleteDocumentMeta: TrpcRouteMeta = {
openapi: {

View File

@ -19,5 +19,6 @@ export const downloadDocumentRoute = authenticatedProcedure
},
});
// This endpoint is purely for V2 API, which is implemented in the Hono remix server.
throw new Error('NOT_IMPLEMENTED');
});

View File

@ -1,12 +1,12 @@
import { resendDocument } from '@documenso/lib/server-only/document/resend-document';
import { ZGenericSuccessResponse } from '../schema';
import { authenticatedProcedure } from '../trpc';
import {
ZRedistributeDocumentRequestSchema,
ZRedistributeDocumentResponseSchema,
redistributeDocumentMeta,
} from './redistribute-document.types';
import { ZGenericSuccessResponse } from './schema';
export const redistributeDocumentRoute = authenticatedProcedure
.meta(redistributeDocumentMeta)

View File

@ -1,7 +1,7 @@
import { z } from 'zod';
import { ZSuccessResponseSchema } from '../schema';
import type { TrpcRouteMeta } from '../trpc';
import { ZSuccessResponseSchema } from './schema';
export const redistributeDocumentMeta: TrpcRouteMeta = {
openapi: {

View File

@ -1,19 +1,6 @@
import { DocumentVisibility } from '@prisma/client';
import { z } from 'zod';
/**
* 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
.string()
.trim()