refactor: filter by adminId

This commit is contained in:
Mauricio Siu
2024-10-03 00:45:46 -06:00
parent 600f4b2106
commit 5c72e5a452
11 changed files with 3938 additions and 49 deletions

View File

@@ -7,6 +7,7 @@ import { auth } from "./auth";
import { registry } from "./registry";
import { certificateType } from "./shared";
import { users } from "./user";
import { sshKeys } from "./ssh-key";
export const admins = pgTable("admin", {
adminId: text("adminId")
@@ -35,6 +36,7 @@ export const adminsRelations = relations(admins, ({ one, many }) => ({
}),
users: many(users),
registry: many(registry),
sshKeys: many(sshKeys),
}));
const createSchema = createInsertSchema(admins, {

View File

@@ -6,6 +6,7 @@ import { pgTable, text } from "drizzle-orm/pg-core";
import { createInsertSchema } from "drizzle-zod";
import { nanoid } from "nanoid";
import { server } from "./server";
import { admins } from "./admin";
export const sshKeys = pgTable("ssh-key", {
sshKeyId: text("sshKeyId")
@@ -20,12 +21,19 @@ export const sshKeys = pgTable("ssh-key", {
.notNull()
.$defaultFn(() => new Date().toISOString()),
lastUsedAt: text("lastUsedAt"),
adminId: text("adminId").references(() => admins.adminId, {
onDelete: "cascade",
}),
});
export const sshKeysRelations = relations(sshKeys, ({ many }) => ({
export const sshKeysRelations = relations(sshKeys, ({ many, one }) => ({
applications: many(applications),
compose: many(compose),
servers: many(server),
admin: one(admins, {
fields: [sshKeys.adminId],
references: [admins.adminId],
}),
}));
const createSchema = createInsertSchema(
@@ -40,6 +48,7 @@ export const apiCreateSshKey = createSchema
description: true,
privateKey: true,
publicKey: true,
adminId: true,
})
.merge(sshKeyCreate.pick({ privateKey: true }));

View File

@@ -34,8 +34,9 @@ export const findUserByAuthId = async (authId: string) => {
return user;
};
export const findUsers = async () => {
const users = await db.query.users.findMany({
export const findUsers = async (adminId: string) => {
const currentUsers = await db.query.users.findMany({
where: eq(users.adminId, adminId),
with: {
auth: {
columns: {
@@ -44,7 +45,7 @@ export const findUsers = async () => {
},
},
});
return users;
return currentUsers;
};
export const addNewProject = async (authId: string, projectId: string) => {