Skip to content

Commit 7cffc85

Browse files
authored
fix: Fix create/update input schemas to only include their respective fields (#870)
1 parent 4ce4a66 commit 7cffc85

33 files changed

Lines changed: 464 additions & 166 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@baseplate-dev/fastify-generators': patch
3+
---
4+
5+
Fix create/update input schemas to only include their respective fields using Zod `.pick()`, make fieldSchemas a `z.object()`, skip transform path when the operation has no transform fields, and omit unused `context` parameter in scalar-only methods without auth

examples/blog-with-auth/apps/backend/baseplate/generated/src/modules/accounts/users/schema/user.mutations.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ const updateUserDataInputType = builder
4343
.inputType('UpdateUserData', {
4444
fields: (t) => ({
4545
email: t.string(),
46+
phone: t.string(),
4647
name: t.string(),
4748
emailVerified: t.boolean(),
4849
}),

examples/blog-with-auth/apps/backend/baseplate/generated/src/modules/accounts/users/services/user.data-service.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,18 @@ import type { ServiceContext } from '@src/utils/service-context.js';
99
import { prisma } from '@src/services/prisma.js';
1010
import { checkGlobalAuthorization } from '@src/utils/authorizers.js';
1111

12-
const userFieldSchemas = {
12+
const userFieldSchemas = z.object({
1313
email: z.string().nullish(),
14+
phone: z.string().nullish(),
1415
name: z.string().nullish(),
1516
emailVerified: z.boolean().optional(),
16-
};
17+
});
1718

18-
export const userCreateSchema = z.object(userFieldSchemas);
19-
20-
export const userUpdateSchema = z.object(userFieldSchemas).partial();
19+
export const userCreateSchema = userFieldSchemas.pick({
20+
email: true,
21+
name: true,
22+
emailVerified: true,
23+
});
2124

2225
export async function createUser<TQuery extends DataQuery<'user'>>({
2326
data,
@@ -38,6 +41,8 @@ export async function createUser<TQuery extends DataQuery<'user'>>({
3841
return result as GetResult<'user', TQuery>;
3942
}
4043

44+
export const userUpdateSchema = userFieldSchemas.partial();
45+
4146
export async function updateUser<TQuery extends DataQuery<'user'>>({
4247
where,
4348
data,

examples/blog-with-auth/apps/backend/baseplate/generated/src/modules/articles/services/article.data-service.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@ import type { ServiceContext } from '@src/utils/service-context.js';
99
import { prisma } from '@src/services/prisma.js';
1010
import { checkGlobalAuthorization } from '@src/utils/authorizers.js';
1111

12-
const articleFieldSchemas = { title: z.string(), content: z.string() };
12+
const articleFieldSchemas = z.object({
13+
title: z.string(),
14+
content: z.string(),
15+
});
1316

14-
export const articleCreateSchema = z.object(articleFieldSchemas);
15-
16-
export const articleUpdateSchema = z.object(articleFieldSchemas).partial();
17+
export const articleCreateSchema = articleFieldSchemas;
1718

1819
export async function createArticle<TQuery extends DataQuery<'article'>>({
1920
data,
@@ -34,6 +35,8 @@ export async function createArticle<TQuery extends DataQuery<'article'>>({
3435
return result as GetResult<'article', TQuery>;
3536
}
3637

38+
export const articleUpdateSchema = articleFieldSchemas.partial();
39+
3740
export async function updateArticle<TQuery extends DataQuery<'article'>>({
3841
where,
3942
data,

examples/blog-with-auth/apps/backend/baseplate/generated/src/modules/blogs/services/blog-post.data-service.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { prisma } from '@src/services/prisma.js';
1111
import { checkGlobalAuthorization } from '@src/utils/authorizers.js';
1212
import { relationHelpers } from '@src/utils/data-operations/relation-helpers.js';
1313

14-
const blogPostFieldSchemas = {
14+
const blogPostFieldSchemas = z.object({
1515
blogId: z.uuid(),
1616
publisherId: z.uuid(),
1717
title: z.string(),
@@ -20,11 +20,9 @@ const blogPostFieldSchemas = {
2020
.json()
2121
.transform((val) => (val === null ? Prisma.JsonNull : val))
2222
.optional(),
23-
};
23+
});
2424

25-
export const blogPostCreateSchema = z.object(blogPostFieldSchemas);
26-
27-
export const blogPostUpdateSchema = z.object(blogPostFieldSchemas).partial();
25+
export const blogPostCreateSchema = blogPostFieldSchemas;
2826

2927
export async function createBlogPost<TQuery extends DataQuery<'blogPost'>>({
3028
data,
@@ -50,6 +48,8 @@ export async function createBlogPost<TQuery extends DataQuery<'blogPost'>>({
5048
return result as GetResult<'blogPost', TQuery>;
5149
}
5250

51+
export const blogPostUpdateSchema = blogPostFieldSchemas.partial();
52+
5353
export async function updateBlogPost<TQuery extends DataQuery<'blogPost'>>({
5454
where,
5555
data,

examples/blog-with-auth/apps/backend/baseplate/generated/src/modules/blogs/services/blog.data-service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ import { relationHelpers } from '@src/utils/data-operations/relation-helpers.js'
1212

1313
import { blogAuthorizer } from '../authorizers/blog.authorizer.js';
1414

15-
const blogFieldSchemas = { name: z.string(), userId: z.uuid() };
15+
const blogFieldSchemas = z.object({ name: z.string(), userId: z.uuid() });
1616

17-
export const blogUpdateSchema = z.object(blogFieldSchemas).partial();
17+
export const blogUpdateSchema = blogFieldSchemas.partial();
1818

1919
export async function updateBlog<TQuery extends DataQuery<'blog'>>({
2020
where,

examples/blog-with-auth/apps/backend/src/modules/accounts/users/schema/user.mutations.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ const updateUserDataInputType = builder
4343
.inputType('UpdateUserData', {
4444
fields: (t) => ({
4545
email: t.string(),
46+
phone: t.string(),
4647
name: t.string(),
4748
emailVerified: t.boolean(),
4849
}),

examples/blog-with-auth/apps/backend/src/modules/accounts/users/services/user.data-service.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,18 @@ import type { ServiceContext } from '@src/utils/service-context.js';
99
import { prisma } from '@src/services/prisma.js';
1010
import { checkGlobalAuthorization } from '@src/utils/authorizers.js';
1111

12-
const userFieldSchemas = {
12+
const userFieldSchemas = z.object({
1313
email: z.string().nullish(),
14+
phone: z.string().nullish(),
1415
name: z.string().nullish(),
1516
emailVerified: z.boolean().optional(),
16-
};
17+
});
1718

18-
export const userCreateSchema = z.object(userFieldSchemas);
19-
20-
export const userUpdateSchema = z.object(userFieldSchemas).partial();
19+
export const userCreateSchema = userFieldSchemas.pick({
20+
email: true,
21+
name: true,
22+
emailVerified: true,
23+
});
2124

2225
export async function createUser<TQuery extends DataQuery<'user'>>({
2326
data,
@@ -38,6 +41,8 @@ export async function createUser<TQuery extends DataQuery<'user'>>({
3841
return result as GetResult<'user', TQuery>;
3942
}
4043

44+
export const userUpdateSchema = userFieldSchemas.partial();
45+
4146
export async function updateUser<TQuery extends DataQuery<'user'>>({
4247
where,
4348
data,

examples/blog-with-auth/apps/backend/src/modules/articles/services/article.data-service.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@ import type { ServiceContext } from '@src/utils/service-context.js';
99
import { prisma } from '@src/services/prisma.js';
1010
import { checkGlobalAuthorization } from '@src/utils/authorizers.js';
1111

12-
const articleFieldSchemas = { title: z.string(), content: z.string() };
12+
const articleFieldSchemas = z.object({
13+
title: z.string(),
14+
content: z.string(),
15+
});
1316

14-
export const articleCreateSchema = z.object(articleFieldSchemas);
15-
16-
export const articleUpdateSchema = z.object(articleFieldSchemas).partial();
17+
export const articleCreateSchema = articleFieldSchemas;
1718

1819
export async function createArticle<TQuery extends DataQuery<'article'>>({
1920
data,
@@ -34,6 +35,8 @@ export async function createArticle<TQuery extends DataQuery<'article'>>({
3435
return result as GetResult<'article', TQuery>;
3536
}
3637

38+
export const articleUpdateSchema = articleFieldSchemas.partial();
39+
3740
export async function updateArticle<TQuery extends DataQuery<'article'>>({
3841
where,
3942
data,

examples/blog-with-auth/apps/backend/src/modules/blogs/services/blog-post.data-service.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { prisma } from '@src/services/prisma.js';
1111
import { checkGlobalAuthorization } from '@src/utils/authorizers.js';
1212
import { relationHelpers } from '@src/utils/data-operations/relation-helpers.js';
1313

14-
const blogPostFieldSchemas = {
14+
const blogPostFieldSchemas = z.object({
1515
blogId: z.uuid(),
1616
publisherId: z.uuid(),
1717
title: z.string(),
@@ -20,11 +20,9 @@ const blogPostFieldSchemas = {
2020
.json()
2121
.transform((val) => (val === null ? Prisma.JsonNull : val))
2222
.optional(),
23-
};
23+
});
2424

25-
export const blogPostCreateSchema = z.object(blogPostFieldSchemas);
26-
27-
export const blogPostUpdateSchema = z.object(blogPostFieldSchemas).partial();
25+
export const blogPostCreateSchema = blogPostFieldSchemas;
2826

2927
export async function createBlogPost<TQuery extends DataQuery<'blogPost'>>({
3028
data,
@@ -50,6 +48,8 @@ export async function createBlogPost<TQuery extends DataQuery<'blogPost'>>({
5048
return result as GetResult<'blogPost', TQuery>;
5149
}
5250

51+
export const blogPostUpdateSchema = blogPostFieldSchemas.partial();
52+
5353
export async function updateBlogPost<TQuery extends DataQuery<'blogPost'>>({
5454
where,
5555
data,

0 commit comments

Comments
 (0)