mirror of
https://github.com/fosrl/pangolin.git
synced 2026-06-26 09:09:05 +00:00
Migrate unkown openapi response from string to {}
This commit is contained in:
@@ -33,7 +33,7 @@ registry.registerPath({
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.object({
|
||||
data: z.unknown().nullable(),
|
||||
data: z.record(z.string(), z.any()).nullable(),
|
||||
success: z.boolean(),
|
||||
error: z.boolean(),
|
||||
message: z.string(),
|
||||
|
||||
@@ -27,7 +27,7 @@ registry.registerPath({
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.object({
|
||||
data: z.unknown().nullable(),
|
||||
data: z.record(z.string(), z.any()).nullable(),
|
||||
success: z.boolean(),
|
||||
error: z.boolean(),
|
||||
message: z.string(),
|
||||
|
||||
@@ -143,7 +143,7 @@ registry.registerPath({
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.object({
|
||||
data: z.unknown().nullable(),
|
||||
data: z.record(z.string(), z.any()).nullable(),
|
||||
success: z.boolean(),
|
||||
error: z.boolean(),
|
||||
message: z.string(),
|
||||
|
||||
@@ -87,7 +87,7 @@ registry.registerPath({
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.object({
|
||||
data: z.unknown().nullable(),
|
||||
data: z.record(z.string(), z.any()).nullable(),
|
||||
success: z.boolean(),
|
||||
error: z.boolean(),
|
||||
message: z.string(),
|
||||
|
||||
@@ -46,7 +46,7 @@ registry.registerPath({
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.object({
|
||||
data: z.unknown().nullable(),
|
||||
data: z.record(z.string(), z.any()).nullable(),
|
||||
success: z.boolean(),
|
||||
error: z.boolean(),
|
||||
message: z.string(),
|
||||
|
||||
@@ -66,7 +66,10 @@ async function queryInvitations(
|
||||
.from(userInviteRoles)
|
||||
.innerJoin(roles, eq(userInviteRoles.roleId, roles.roleId))
|
||||
.where(
|
||||
and(eq(roles.orgId, orgId), inArray(userInviteRoles.inviteId, inviteIds))
|
||||
and(
|
||||
eq(roles.orgId, orgId),
|
||||
inArray(userInviteRoles.inviteId, inviteIds)
|
||||
)
|
||||
);
|
||||
|
||||
const rolesByInvite = new Map<
|
||||
@@ -107,7 +110,7 @@ registry.registerPath({
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.object({
|
||||
data: z.unknown().nullable(),
|
||||
data: z.record(z.string(), z.any()).nullable(),
|
||||
success: z.boolean(),
|
||||
error: z.boolean(),
|
||||
message: z.string(),
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
import { Request, Response, NextFunction } from "express";
|
||||
import { z } from "zod";
|
||||
import { db, idpOidcConfig } from "@server/db";
|
||||
import {
|
||||
idp,
|
||||
idpOrg,
|
||||
roles,
|
||||
userOrgRoles,
|
||||
userOrgs,
|
||||
users
|
||||
} from "@server/db";
|
||||
import { idp, idpOrg, roles, userOrgRoles, userOrgs, users } from "@server/db";
|
||||
import response from "@server/lib/response";
|
||||
import HttpCode from "@server/types/HttpCode";
|
||||
import createHttpError from "http-errors";
|
||||
import { and, asc, desc, eq, exists, inArray, like, or, sql } from "drizzle-orm";
|
||||
import {
|
||||
and,
|
||||
asc,
|
||||
desc,
|
||||
eq,
|
||||
exists,
|
||||
inArray,
|
||||
like,
|
||||
or,
|
||||
sql
|
||||
} from "drizzle-orm";
|
||||
import logger from "@server/logger";
|
||||
import { fromZodError } from "zod-validation-error";
|
||||
import { OpenAPITags, registry } from "@server/openApi";
|
||||
@@ -70,18 +73,23 @@ const listUsersSchema = z.strictObject({
|
||||
description: "Sort order"
|
||||
}),
|
||||
idp_id: z
|
||||
.preprocess((val) => {
|
||||
if (val === undefined || val === null || val === "") {
|
||||
.preprocess(
|
||||
(val) => {
|
||||
if (val === undefined || val === null || val === "") {
|
||||
return undefined;
|
||||
}
|
||||
if (val === "internal") {
|
||||
return "internal";
|
||||
}
|
||||
if (typeof val === "string" && /^\d+$/.test(val)) {
|
||||
return parseInt(val, 10);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
if (val === "internal") {
|
||||
return "internal";
|
||||
}
|
||||
if (typeof val === "string" && /^\d+$/.test(val)) {
|
||||
return parseInt(val, 10);
|
||||
}
|
||||
return undefined;
|
||||
}, z.union([z.literal("internal"), z.number().int().positive()]).optional())
|
||||
},
|
||||
z
|
||||
.union([z.literal("internal"), z.number().int().positive()])
|
||||
.optional()
|
||||
)
|
||||
.openapi({
|
||||
description:
|
||||
'Filter by identity provider id, or "internal" for internal users'
|
||||
@@ -156,7 +164,7 @@ registry.registerPath({
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.object({
|
||||
data: z.unknown().nullable(),
|
||||
data: z.record(z.string(), z.any()).nullable(),
|
||||
success: z.boolean(),
|
||||
error: z.boolean(),
|
||||
message: z.string(),
|
||||
@@ -203,9 +211,7 @@ export async function listUsers(
|
||||
const idpOk = await db
|
||||
.select({ one: sql`1` })
|
||||
.from(idpOrg)
|
||||
.where(
|
||||
and(eq(idpOrg.orgId, orgId), eq(idpOrg.idpId, idp_id))
|
||||
)
|
||||
.where(and(eq(idpOrg.orgId, orgId), eq(idpOrg.idpId, idp_id)))
|
||||
.limit(1);
|
||||
if (idpOk.length === 0) {
|
||||
return next(
|
||||
|
||||
@@ -29,7 +29,7 @@ registry.registerPath({
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.object({
|
||||
data: z.unknown().nullable(),
|
||||
data: z.record(z.string(), z.any()).nullable(),
|
||||
success: z.boolean(),
|
||||
error: z.boolean(),
|
||||
message: z.string(),
|
||||
|
||||
@@ -44,7 +44,7 @@ registry.registerPath({
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.object({
|
||||
data: z.unknown().nullable(),
|
||||
data: z.record(z.string(), z.any()).nullable(),
|
||||
success: z.boolean(),
|
||||
error: z.boolean(),
|
||||
message: z.string(),
|
||||
|
||||
@@ -43,7 +43,7 @@ registry.registerPath({
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.object({
|
||||
data: z.unknown().nullable(),
|
||||
data: z.record(z.string(), z.any()).nullable(),
|
||||
success: z.boolean(),
|
||||
error: z.boolean(),
|
||||
message: z.string(),
|
||||
|
||||
Reference in New Issue
Block a user