From d7c1b0525a5a0a4b864579f26d511e1a40d444de Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Sat, 28 Sep 2024 21:53:42 +0200 Subject: [PATCH] feat(api): redefine openapi for user --- apps/api/src/user/webhook.ts | 6 ++-- packages/schema/src/user/base.ts | 16 +++++------ packages/schema/src/user/webhook.ts | 44 ++++++++++++++++++----------- 3 files changed, 37 insertions(+), 29 deletions(-) diff --git a/apps/api/src/user/webhook.ts b/apps/api/src/user/webhook.ts index 212d252..ce48d48 100644 --- a/apps/api/src/user/webhook.ts +++ b/apps/api/src/user/webhook.ts @@ -1,4 +1,4 @@ -import { db, user as userDb } from '@boring.tools/database' +import { db, user } from '@boring.tools/database' import { UserOutput, UserWebhookInput } from '@boring.tools/schema' import { createRoute, type z } from '@hono/zod-openapi' import { HTTPException } from 'hono/http-exception' @@ -41,12 +41,12 @@ const userCreate = async ({ } try { await db - .insert(userDb) + .insert(user) .values({ ...data, }) .onConflictDoUpdate({ - target: userDb.id, + target: user.id, set: data, }) diff --git a/packages/schema/src/user/base.ts b/packages/schema/src/user/base.ts index b1fdd8a..ec65890 100644 --- a/packages/schema/src/user/base.ts +++ b/packages/schema/src/user/base.ts @@ -1,11 +1,9 @@ import { z } from '@hono/zod-openapi' -export const UserOutput = z - .object({ - id: z.string().openapi({ - example: 'user_2metCkqOhUhHN1jEhLyh8wMODu7', - }), - name: z.string(), - email: z.string().email(), - }) - .openapi('User') +export const UserOutput = z.object({ + id: z.string().openapi({ + example: 'user_2metCkqOhUhHN1jEhLyh8wMODu7', + }), + name: z.string(), + email: z.string().email(), +}) diff --git a/packages/schema/src/user/webhook.ts b/packages/schema/src/user/webhook.ts index 2334d02..f923a91 100644 --- a/packages/schema/src/user/webhook.ts +++ b/packages/schema/src/user/webhook.ts @@ -1,20 +1,30 @@ import { z } from '@hono/zod-openapi' -export const UserWebhookInput = z.object({ - data: z.object({ - id: z.string(), - first_name: z.string(), - last_name: z.string(), - email_addresses: z.array( - z.object({ - email_address: z.string(), - id: z.string(), - verification: z.object({ - status: z.string(), - }), +export const UserWebhookInput = z + .object({ + data: z.object({ + id: z.string().openapi({ + example: 'user_2metCkqOhUhHN1jEhLyh8wMODu7', }), - ), - image_url: z.string(), - }), - type: z.string(), -}) + first_name: z.string().openapi({ + example: 'Jane', + }), + last_name: z.string().openapi({ + example: 'Doe', + }), + email_addresses: z.array( + z.object({ + email_address: z.string().openapi({ + example: 'jane@doe.com', + }), + }), + ), + image_url: z.string().openapi({ + example: 'https://example.com/image.png', + }), + }), + type: z.string().openapi({ + examples: ['user.created', 'user.updated'], + }), + }) + .openapi('User')