Files
TaxHacker_s23/app/(auth)/actions.ts
Dmitrii Anfimov dee915ffd6 feat: more llm provider options (google, mistral) (#28)
* feat: add google provider

* fix: default for google model

* feat: multiple providers

* fix: defaults from env for login form

* fix: add mistral to env files

* chore: delete unused code

* chore: revert database url to original

* fix: render default value for api key from env on server

* fix: type errors during compilation

---------

Co-authored-by: Vasily Zubarev <me@vas3k.ru>
2025-07-22 21:49:54 +02:00

38 lines
961 B
TypeScript

"use server"
import { createUserDefaults, isDatabaseEmpty } from "@/models/defaults"
import { updateSettings } from "@/models/settings"
import { getOrCreateSelfHostedUser } from "@/models/users"
import { revalidatePath } from "next/cache"
import { redirect } from "next/navigation"
export async function selfHostedGetStartedAction(formData: FormData) {
const user = await getOrCreateSelfHostedUser()
if (await isDatabaseEmpty(user.id)) {
await createUserDefaults(user.id)
}
const apiKeys = [
"openai_api_key",
"google_api_key",
"mistral_api_key"
]
for (const key of apiKeys) {
const value = formData.get(key)
if (value) {
await updateSettings(user.id, key, value as string)
}
}
const defaultCurrency = formData.get("default_currency")
if (defaultCurrency) {
await updateSettings(user.id, "default_currency", defaultCurrency as string)
}
revalidatePath("/dashboard")
redirect("/dashboard")
}