34 lines
969 B
TypeScript
34 lines
969 B
TypeScript
import { db } from "../db.server";
|
|
import { getTenant } from "../db/tenants.db.server";
|
|
import { getAvailableTenantSlug } from "./tenantService";
|
|
|
|
export async function getAvailableTenantInboundAddress(name: string) {
|
|
const slug = await getAvailableTenantSlug({ name });
|
|
const slugWithDots = slug.split("-").join(".");
|
|
let address = slugWithDots;
|
|
let tries = 1;
|
|
do {
|
|
const existingAddress = await db.tenantInboundAddress.findUnique({
|
|
where: {
|
|
address,
|
|
},
|
|
});
|
|
if (existingAddress !== null) {
|
|
address = slugWithDots + tries.toString();
|
|
tries++;
|
|
} else {
|
|
break;
|
|
}
|
|
} while (true);
|
|
return address;
|
|
}
|
|
|
|
export async function getTenantDefaultInboundAddress(tenantId: string) {
|
|
const tenant = await getTenant(tenantId);
|
|
let address: string | null = null;
|
|
if (tenant?.inboundAddresses && tenant?.inboundAddresses.length > 0) {
|
|
address = tenant.inboundAddresses[0].address;
|
|
}
|
|
return address;
|
|
}
|