c652c61e0c
* feat: refactor UI to use coss + coupons UI * fix: use TRPCError and remove sensitive logging in createCoupon handler - Replace plain Error with TRPCError for consistent tRPC error handling - Use INTERNAL_SERVER_ERROR for missing env configuration - Use UNAUTHORIZED for permission denied errors - Use BAD_REQUEST for API failure errors - Remove console.warn that logged username (sensitive info) Co-Authored-By: unknown <> * feat: add copy button and fix 0 on % off --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
124 lines
5.9 KiB
TypeScript
124 lines
5.9 KiB
TypeScript
import { authedAdminProcedure } from "../../../procedures/authedProcedure";
|
|
import { router } from "../../../trpc";
|
|
import { ZAdminAssignFeatureToTeamSchema } from "./assignFeatureToTeam.schema";
|
|
import { ZBillingPortalLinkSchema } from "./billingPortalLink.schema";
|
|
import { ZCreateCouponSchema } from "./createCoupon.schema";
|
|
import { ZCreateSelfHostedLicenseSchema } from "./createSelfHostedLicenseKey.schema";
|
|
import { ZAdminGetTeamsForFeatureSchema } from "./getTeamsForFeature.schema";
|
|
import { ZListMembersSchema } from "./listPaginated.schema";
|
|
import { ZAdminLockUserAccountSchema } from "./lockUserAccount.schema";
|
|
import { ZAdminRemoveTwoFactor } from "./removeTwoFactor.schema";
|
|
import { ZResendPurchaseCompleteEmailSchema } from "./resendPurchaseCompleteEmail.schema";
|
|
import { ZAdminPasswordResetSchema } from "./sendPasswordReset.schema";
|
|
import { ZSetSMSLockState } from "./setSMSLockState.schema";
|
|
import { toggleFeatureFlag } from "./toggleFeatureFlag.procedure";
|
|
import { ZAdminUnassignFeatureFromTeamSchema } from "./unassignFeatureFromTeam.schema";
|
|
import { ZAdminVerifyWorkflowsSchema } from "./verifyWorkflows.schema";
|
|
import { ZWhitelistUserWorkflows } from "./whitelistUserWorkflows.schema";
|
|
import {
|
|
workspacePlatformCreateSchema,
|
|
workspacePlatformUpdateSchema,
|
|
workspacePlatformUpdateServiceAccountSchema,
|
|
workspacePlatformToggleEnabledSchema,
|
|
} from "./workspacePlatform/schema";
|
|
import { watchlistRouter } from "./watchlist/_router";
|
|
|
|
const NAMESPACE = "admin";
|
|
|
|
const namespaced = (s: string) => `${NAMESPACE}.${s}`;
|
|
|
|
export const adminRouter = router({
|
|
listPaginated: authedAdminProcedure.input(ZListMembersSchema).query(async (opts) => {
|
|
const { default: handler } = await import("./listPaginated.handler");
|
|
return handler(opts);
|
|
}),
|
|
sendPasswordReset: authedAdminProcedure.input(ZAdminPasswordResetSchema).mutation(async (opts) => {
|
|
const { default: handler } = await import("./sendPasswordReset.handler");
|
|
return handler(opts);
|
|
}),
|
|
lockUserAccount: authedAdminProcedure.input(ZAdminLockUserAccountSchema).mutation(async (opts) => {
|
|
const { default: handler } = await import("./lockUserAccount.handler");
|
|
return handler(opts);
|
|
}),
|
|
toggleFeatureFlag,
|
|
removeTwoFactor: authedAdminProcedure.input(ZAdminRemoveTwoFactor).mutation(async (opts) => {
|
|
const { default: handler } = await import("./removeTwoFactor.handler");
|
|
return handler(opts);
|
|
}),
|
|
getSMSLockStateTeamsUsers: authedAdminProcedure.query(async (opts) => {
|
|
const { default: handler } = await import("./getSMSLockStateTeamsUsers.handler");
|
|
return handler(opts);
|
|
}),
|
|
setSMSLockState: authedAdminProcedure.input(ZSetSMSLockState).mutation(async (opts) => {
|
|
const { default: handler } = await import("./setSMSLockState.handler");
|
|
return handler(opts);
|
|
}),
|
|
createSelfHostedLicense: authedAdminProcedure
|
|
.input(ZCreateSelfHostedLicenseSchema)
|
|
.mutation(async (opts) => {
|
|
const { default: handler } = await import("./createSelfHostedLicenseKey.handler");
|
|
return handler(opts);
|
|
}),
|
|
createCoupon: authedAdminProcedure.input(ZCreateCouponSchema).mutation(async (opts) => {
|
|
const { default: handler } = await import("./createCoupon.handler");
|
|
return handler(opts);
|
|
}),
|
|
resendPurchaseCompleteEmail: authedAdminProcedure
|
|
.input(ZResendPurchaseCompleteEmailSchema)
|
|
.mutation(async (opts) => {
|
|
const { default: handler } = await import("./resendPurchaseCompleteEmail.handler");
|
|
return handler(opts);
|
|
}),
|
|
billingPortalLink: authedAdminProcedure.input(ZBillingPortalLinkSchema).mutation(async (opts) => {
|
|
const { default: handler } = await import("./billingPortalLink.handler");
|
|
return handler(opts);
|
|
}),
|
|
verifyWorkflows: authedAdminProcedure.input(ZAdminVerifyWorkflowsSchema).mutation(async (opts) => {
|
|
const { default: handler } = await import("./verifyWorkflows.handler");
|
|
return handler(opts);
|
|
}),
|
|
whitelistUserWorkflows: authedAdminProcedure.input(ZWhitelistUserWorkflows).mutation(async (opts) => {
|
|
const { default: handler } = await import("./whitelistUserWorkflows.handler");
|
|
return handler(opts);
|
|
}),
|
|
getTeamsForFeature: authedAdminProcedure.input(ZAdminGetTeamsForFeatureSchema).query(async (opts) => {
|
|
const { default: handler } = await import("./getTeamsForFeature.handler");
|
|
return handler(opts);
|
|
}),
|
|
assignFeatureToTeam: authedAdminProcedure.input(ZAdminAssignFeatureToTeamSchema).mutation(async (opts) => {
|
|
const { default: handler } = await import("./assignFeatureToTeam.handler");
|
|
return handler(opts);
|
|
}),
|
|
unassignFeatureFromTeam: authedAdminProcedure
|
|
.input(ZAdminUnassignFeatureFromTeamSchema)
|
|
.mutation(async (opts) => {
|
|
const { default: handler } = await import("./unassignFeatureFromTeam.handler");
|
|
return handler(opts);
|
|
}),
|
|
workspacePlatform: router({
|
|
list: authedAdminProcedure.query(async () => {
|
|
const { default: handler } = await import("./workspacePlatform/list.handler");
|
|
return handler();
|
|
}),
|
|
add: authedAdminProcedure.input(workspacePlatformCreateSchema).mutation(async (opts) => {
|
|
const { default: handler } = await import("./workspacePlatform/add.handler");
|
|
return handler(opts);
|
|
}),
|
|
update: authedAdminProcedure.input(workspacePlatformUpdateSchema).mutation(async (opts) => {
|
|
const { default: handler } = await import("./workspacePlatform/update.handler");
|
|
return handler(opts);
|
|
}),
|
|
updateServiceAccount: authedAdminProcedure
|
|
.input(workspacePlatformUpdateServiceAccountSchema)
|
|
.mutation(async (opts) => {
|
|
const { default: handler } = await import("./workspacePlatform/updateServiceAccount.handler");
|
|
return handler(opts);
|
|
}),
|
|
toggleEnabled: authedAdminProcedure.input(workspacePlatformToggleEnabledSchema).mutation(async (opts) => {
|
|
const { default: handler } = await import("./workspacePlatform/toggleEnabled.handler");
|
|
return handler(opts);
|
|
}),
|
|
}),
|
|
watchlist: watchlistRouter,
|
|
});
|