diff --git a/lib/directus.ts b/lib/directus.ts index 14e915ab..27d73eec 100644 --- a/lib/directus.ts +++ b/lib/directus.ts @@ -166,6 +166,7 @@ export async function createSettingsItem( payload: any, bearer: string ): Promise<{ data: { id: string } }> { + // Note: callers are already using { data: ... } patterns when needed. return dxPOST<{ data: { id: string } }>(`/items/${collection}`, bearer, payload); } @@ -211,7 +212,8 @@ export async function createDirectusUser(input: { ? input.email.trim() : `${input.username}@noemail.local`; - const res = await directusAdminFetch<{ data: { id: string } }>(`/users`, { + // System endpoint `/users` expects raw fields (no { data } wrapper). + const res = await directusAdminFetch<{ data?: { id?: string } }>(`/users`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ @@ -223,7 +225,9 @@ export async function createDirectusUser(input: { }), }); - return { id: String(res?.data?.id) }; + const id = res?.data?.id as string | undefined; + if (!id) throw new Error("User create succeeded but no id returned"); + return { id: String(id) }; } export async function emailForUsername(username: string): Promise {