Return updated resume object from PUT /resume/{id} instead of void (#2688)

* implement PUT response

* Refactor resume router and service to use DTOs for input and output schemas

* define explicitly, the fields to be returned

---------

Co-authored-by: Amruth Pillai <im.amruth@gmail.com>
This commit is contained in:
Arjun Earthperson
2026-02-06 18:49:33 -05:00
committed by GitHub
parent ddbb71fb78
commit 5e8e1349bc
5 changed files with 212 additions and 140 deletions
+72 -37
View File
@@ -12,14 +12,14 @@ importers:
.:
dependencies:
'@ai-sdk/anthropic':
specifier: ^3.0.37
version: 3.0.37(zod@4.3.6)
specifier: ^3.0.38
version: 3.0.38(zod@4.3.6)
'@ai-sdk/google':
specifier: ^3.0.21
version: 3.0.21(zod@4.3.6)
specifier: ^3.0.22
version: 3.0.22(zod@4.3.6)
'@ai-sdk/openai':
specifier: ^3.0.25
version: 3.0.25(zod@4.3.6)
specifier: ^3.0.26
version: 3.0.26(zod@4.3.6)
'@aws-sdk/client-s3':
specifier: ^3.985.0
version: 3.985.0
@@ -117,11 +117,11 @@ importers:
specifier: ^3.19.0
version: 3.19.0
ai:
specifier: ^6.0.74
version: 6.0.74(zod@4.3.6)
specifier: ^6.0.75
version: 6.0.75(zod@4.3.6)
ai-sdk-ollama:
specifier: ^3.4.0
version: 3.4.0(ai@6.0.74(zod@4.3.6))(zod@4.3.6)
version: 3.4.0(ai@6.0.75(zod@4.3.6))(zod@4.3.6)
bcrypt:
specifier: ^6.0.0
version: 6.0.0
@@ -143,6 +143,9 @@ importers:
drizzle-orm:
specifier: ^1.0.0-beta.15-859cf75
version: 1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))
drizzle-zod:
specifier: ^0.8.3
version: 0.8.3(drizzle-orm@1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(zod@4.3.6)
es-toolkit:
specifier: ^1.44.0
version: 1.44.0
@@ -327,26 +330,26 @@ importers:
packages:
'@ai-sdk/anthropic@3.0.37':
resolution: {integrity: sha512-tEgcJPw+a6obbF+SHrEiZsx3DNxOHqeY8bK4IpiNsZ8YPZD141R34g3lEAaQnmNN5mGsEJ8SXoEDabuzi8wFJQ==}
'@ai-sdk/anthropic@3.0.38':
resolution: {integrity: sha512-9MchyPRPni0WzrFeIGNevZpQVfWxaS+MQFupIXYQo9VgHnuO1Vyrp9SBmjkkuoAdBs7GomsWqLZCcNMJAVbdFA==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/gateway@3.0.36':
resolution: {integrity: sha512-2r1Q6azvqMYxQ1hqfWZmWg4+8MajoldD/ty65XdhCaCoBfvDu7trcvxXDfTSU+3/wZ1JIDky46SWYFOHnTbsBw==}
'@ai-sdk/gateway@3.0.37':
resolution: {integrity: sha512-w7rxPd2WOuSr4he2ALvtCAM/W1/33rGdv3kkU52tCGj/bJSYJnJDpnTvoWRLNESp9HEkkiNFfBLFZY0PB9n4aQ==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/google@3.0.21':
resolution: {integrity: sha512-qQuvcbDqDPZojtoT45UFCQVH2w3m6KJKKjqJduUsvhN5ZqOXste0h4HgHK8hwGuDfv96Jr9QQEpspbgp6iu5Uw==}
'@ai-sdk/google@3.0.22':
resolution: {integrity: sha512-g1N5P/jfTiH4qwdv4WT3hkKzzAbITFz457NomtBfjP8Q3SCzdbU9oPK5ACBMG8RN5mc2QPL6DLtM3Hf5T8KPmw==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/openai@3.0.25':
resolution: {integrity: sha512-DsaN46R98+D1W3lU3fKuPU3ofacboLaHlkAwxJPgJ8eup1AJHmPK1N1y10eJJbJcF6iby8Tf/vanoZxc9JPUfw==}
'@ai-sdk/openai@3.0.26':
resolution: {integrity: sha512-W/hiwxIfG29IO0Fob1HwWpFssMsNrxWoX8A7DwNGOtKArDBmJNuGzQeU/k0Fnh8WyvZEnfxkjO4oXkSXfVBayg==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
@@ -357,10 +360,20 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/provider-utils@4.0.14':
resolution: {integrity: sha512-7bzKd9lgiDeXM7O4U4nQ8iTxguAOkg8LZGD9AfDVZYjO5cKYRwBPwVjboFcVrxncRHu0tYxZtXZtiLKpG4pEng==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/provider@3.0.7':
resolution: {integrity: sha512-VkPLrutM6VdA924/mG8OS+5frbVTcu6e046D2bgDo00tehBANR1QBJ/mPcZ9tXMFOsVcm6SQArOregxePzTFPw==}
engines: {node: '>=18'}
'@ai-sdk/provider@3.0.8':
resolution: {integrity: sha512-oGMAgGoQdBXbZqNG0Ze56CHjDZ1IDYOwGYxYjO5KLSlz5HiNQ9udIXsPZ61VWaHGZ5XW/jyjmr6t2xz2jGVwbQ==}
engines: {node: '>=18'}
'@antfu/ni@25.0.0':
resolution: {integrity: sha512-9q/yCljni37pkMr4sPrI3G4jqdIk074+iukc5aFJl7kmDCCsiJrbZ6zKxnES1Gwg+i9RcDZwvktl23puGslmvA==}
hasBin: true
@@ -4323,8 +4336,8 @@ packages:
peerDependencies:
ai: ^6.0.70
ai@6.0.74:
resolution: {integrity: sha512-psGKcE4J0WEXZEvZrc6yc4BzGZW4sfMrbXZgYxyL6Mj8eES5oCaoSGEQfYeNdZvj10EEEXr9rsnUAWZdHiQ/DQ==}
ai@6.0.75:
resolution: {integrity: sha512-pT1xtwaE5Un261GO9Mt9DZ2rv26v+gQZNRXo433CNAMo0JDYs2ef+5MvcNkBe1jXCY9XrXxUG/VT6Y6/9S2SWg==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
@@ -5142,6 +5155,12 @@ packages:
sqlite3:
optional: true
drizzle-zod@0.8.3:
resolution: {integrity: sha512-66yVOuvGhKJnTdiqj1/Xaaz9/qzOdRJADpDa68enqS6g3t0kpNkwNYjUuaeXgZfO/UWuIM9HIhSlJ6C5ZraMww==}
peerDependencies:
drizzle-orm: '>=0.36.0'
zod: ^3.25.0 || ^4.0.0
dunder-proto@1.0.1:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
@@ -8190,29 +8209,29 @@ packages:
snapshots:
'@ai-sdk/anthropic@3.0.37(zod@4.3.6)':
'@ai-sdk/anthropic@3.0.38(zod@4.3.6)':
dependencies:
'@ai-sdk/provider': 3.0.7
'@ai-sdk/provider-utils': 4.0.13(zod@4.3.6)
'@ai-sdk/provider': 3.0.8
'@ai-sdk/provider-utils': 4.0.14(zod@4.3.6)
zod: 4.3.6
'@ai-sdk/gateway@3.0.36(zod@4.3.6)':
'@ai-sdk/gateway@3.0.37(zod@4.3.6)':
dependencies:
'@ai-sdk/provider': 3.0.7
'@ai-sdk/provider-utils': 4.0.13(zod@4.3.6)
'@ai-sdk/provider': 3.0.8
'@ai-sdk/provider-utils': 4.0.14(zod@4.3.6)
'@vercel/oidc': 3.1.0
zod: 4.3.6
'@ai-sdk/google@3.0.21(zod@4.3.6)':
'@ai-sdk/google@3.0.22(zod@4.3.6)':
dependencies:
'@ai-sdk/provider': 3.0.7
'@ai-sdk/provider-utils': 4.0.13(zod@4.3.6)
'@ai-sdk/provider': 3.0.8
'@ai-sdk/provider-utils': 4.0.14(zod@4.3.6)
zod: 4.3.6
'@ai-sdk/openai@3.0.25(zod@4.3.6)':
'@ai-sdk/openai@3.0.26(zod@4.3.6)':
dependencies:
'@ai-sdk/provider': 3.0.7
'@ai-sdk/provider-utils': 4.0.13(zod@4.3.6)
'@ai-sdk/provider': 3.0.8
'@ai-sdk/provider-utils': 4.0.14(zod@4.3.6)
zod: 4.3.6
'@ai-sdk/provider-utils@4.0.13(zod@4.3.6)':
@@ -8222,10 +8241,21 @@ snapshots:
eventsource-parser: 3.0.6
zod: 4.3.6
'@ai-sdk/provider-utils@4.0.14(zod@4.3.6)':
dependencies:
'@ai-sdk/provider': 3.0.8
'@standard-schema/spec': 1.1.0
eventsource-parser: 3.0.6
zod: 4.3.6
'@ai-sdk/provider@3.0.7':
dependencies:
json-schema: 0.4.0
'@ai-sdk/provider@3.0.8':
dependencies:
json-schema: 0.4.0
'@antfu/ni@25.0.0':
dependencies:
ansis: 4.2.0
@@ -12839,20 +12869,20 @@ snapshots:
agent-base@7.1.4: {}
ai-sdk-ollama@3.4.0(ai@6.0.74(zod@4.3.6))(zod@4.3.6):
ai-sdk-ollama@3.4.0(ai@6.0.75(zod@4.3.6))(zod@4.3.6):
dependencies:
'@ai-sdk/provider': 3.0.7
'@ai-sdk/provider-utils': 4.0.13(zod@4.3.6)
ai: 6.0.74(zod@4.3.6)
ai: 6.0.75(zod@4.3.6)
ollama: 0.6.3
transitivePeerDependencies:
- zod
ai@6.0.74(zod@4.3.6):
ai@6.0.75(zod@4.3.6):
dependencies:
'@ai-sdk/gateway': 3.0.36(zod@4.3.6)
'@ai-sdk/provider': 3.0.7
'@ai-sdk/provider-utils': 4.0.13(zod@4.3.6)
'@ai-sdk/gateway': 3.0.37(zod@4.3.6)
'@ai-sdk/provider': 3.0.8
'@ai-sdk/provider-utils': 4.0.14(zod@4.3.6)
'@opentelemetry/api': 1.9.0
zod: 4.3.6
@@ -13553,6 +13583,11 @@ snapshots:
postgres: 3.4.7
prisma: 7.2.0(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
drizzle-zod@0.8.3(drizzle-orm@1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)))(zod@4.3.6):
dependencies:
drizzle-orm: 1.0.0-beta.9-e89174b(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(typescript@5.9.3))(@types/mssql@9.1.9)(@types/pg@8.16.0)(mssql@11.0.1)(mysql2@3.15.3)(pg@8.18.0)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))
zod: 4.3.6
dunder-proto@1.0.1:
dependencies:
call-bind-apply-helpers: 1.0.2