Add niceid to ui and api for providers

This commit is contained in:
Owen
2026-08-14 09:43:03 -04:00
parent f0f5e9219b
commit 5d37f44241
18 changed files with 219 additions and 75 deletions
@@ -1,5 +1,5 @@
import { Request, Response, NextFunction } from "express";
import { aiProviders, apiKeyOrg, db } from "@server/db";
import { AiProvider, aiProviders, apiKeyOrg, db } from "@server/db";
import { and, eq } from "drizzle-orm";
import createHttpError from "http-errors";
import HttpCode from "@server/types/HttpCode";
@@ -13,7 +13,8 @@ export async function verifyApiKeyAiProviderAccess(
try {
const apiKey = req.apiKey;
const providerIdRaw = getFirstString(req.params.providerId);
const providerId = Number.parseInt(providerIdRaw ?? "", 10);
const niceId = getFirstString(req.params.niceId);
const orgIdParam = getFirstString(req.params.orgId);
if (!apiKey) {
return next(
@@ -21,23 +22,42 @@ export async function verifyApiKeyAiProviderAccess(
);
}
if (Number.isNaN(providerId)) {
return next(
createHttpError(HttpCode.BAD_REQUEST, "Invalid provider ID")
);
}
let provider: AiProvider | undefined;
const [provider] = await db
.select()
.from(aiProviders)
.where(eq(aiProviders.providerId, providerId))
.limit(1);
if (niceId && orgIdParam) {
const [providerRes] = await db
.select()
.from(aiProviders)
.where(
and(
eq(aiProviders.niceId, niceId),
eq(aiProviders.orgId, orgIdParam)
)
)
.limit(1);
provider = providerRes;
} else {
const providerId = Number.parseInt(providerIdRaw ?? "", 10);
if (Number.isNaN(providerId)) {
return next(
createHttpError(HttpCode.BAD_REQUEST, "Invalid provider ID")
);
}
const [providerRes] = await db
.select()
.from(aiProviders)
.where(eq(aiProviders.providerId, providerId))
.limit(1);
provider = providerRes;
}
if (!provider) {
return next(
createHttpError(
HttpCode.NOT_FOUND,
`AI provider with ID ${providerId} not found`
`AI provider with ID ${providerIdRaw || niceId} not found`
)
);
}
+33 -13
View File
@@ -1,5 +1,5 @@
import { Request, Response, NextFunction } from "express";
import { aiProviders, db, userOrgs } from "@server/db";
import { AiProvider, aiProviders, db, userOrgs } from "@server/db";
import { and, eq } from "drizzle-orm";
import createHttpError from "http-errors";
import HttpCode from "@server/types/HttpCode";
@@ -15,7 +15,8 @@ export async function verifyAiProviderAccess(
try {
const userId = req.user!.userId;
const providerIdRaw = getFirstString(req.params.providerId);
const providerId = Number.parseInt(providerIdRaw ?? "", 10);
const niceId = getFirstString(req.params.niceId);
const orgIdParam = getFirstString(req.params.orgId);
if (!userId) {
return next(
@@ -23,23 +24,42 @@ export async function verifyAiProviderAccess(
);
}
if (Number.isNaN(providerId)) {
return next(
createHttpError(HttpCode.BAD_REQUEST, "Invalid provider ID")
);
}
let provider: AiProvider | undefined;
const [provider] = await db
.select()
.from(aiProviders)
.where(eq(aiProviders.providerId, providerId))
.limit(1);
if (niceId && orgIdParam) {
const [providerRes] = await db
.select()
.from(aiProviders)
.where(
and(
eq(aiProviders.niceId, niceId),
eq(aiProviders.orgId, orgIdParam)
)
)
.limit(1);
provider = providerRes;
} else {
const providerId = Number.parseInt(providerIdRaw ?? "", 10);
if (Number.isNaN(providerId)) {
return next(
createHttpError(HttpCode.BAD_REQUEST, "Invalid provider ID")
);
}
const [providerRes] = await db
.select()
.from(aiProviders)
.where(eq(aiProviders.providerId, providerId))
.limit(1);
provider = providerRes;
}
if (!provider) {
return next(
createHttpError(
HttpCode.NOT_FOUND,
`AI provider with ID ${providerId} not found`
`AI provider with ID ${providerIdRaw || niceId} not found`
)
);
}