Add ability to update and delete Active Directory domains

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 705f2157-ef97-4fbd-89e4-8c7f2ecaea90
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7ed01c5f-a82d-405a-b728-b2e3d127c60c/10f17668-d1aa-4b91-b921-61237e6fe8f5.jpg
This commit is contained in:
alphaeusmote
2025-04-11 14:40:04 +00:00
parent aec85a8468
commit 4bdec2c296
2 changed files with 185 additions and 0 deletions
+38
View File
@@ -142,9 +142,12 @@ export interface IStorage {
// AD Domains
getAdDomain(id: number): Promise<AdDomain | undefined>;
getAdDomainByGuid(connectionId: number, objectGUID: string): Promise<AdDomain | undefined>;
createAdDomain(domain: InsertAdDomain): Promise<AdDomain>;
updateAdDomain(id: number, domain: Partial<AdDomain>): Promise<AdDomain | undefined>;
updateAdDomainByGuid(connectionId: number, objectGUID: string, domain: Partial<AdDomain>): Promise<AdDomain | undefined>;
deleteAdDomain(id: number): Promise<boolean>;
deleteAdDomainByGuid(connectionId: number, objectGUID: string): Promise<boolean>;
listAdDomains(connectionId: number, query?: any): Promise<AdDomain[]>;
// AD Sites
@@ -1027,6 +1030,16 @@ export class DatabaseStorage implements IStorage {
const result = await db.select().from(adDomains).where(eq(adDomains.id, id));
return result.length > 0 ? result[0] : undefined;
}
async getAdDomainByGuid(connectionId: number, objectGUID: string): Promise<AdDomain | undefined> {
const result = await db.select().from(adDomains).where(
and(
eq(adDomains.connectionId, connectionId),
eq(adDomains.objectGUID, objectGUID)
)
);
return result.length > 0 ? result[0] : undefined;
}
async createAdDomain(domain: InsertAdDomain): Promise<AdDomain> {
const result = await db.insert(adDomains).values(domain).returning();
@@ -1037,11 +1050,36 @@ export class DatabaseStorage implements IStorage {
const result = await db.update(adDomains).set(domainData).where(eq(adDomains.id, id)).returning();
return result.length > 0 ? result[0] : undefined;
}
async updateAdDomainByGuid(connectionId: number, objectGUID: string, domainData: Partial<AdDomain>): Promise<AdDomain | undefined> {
const result = await db.update(adDomains)
.set(domainData)
.where(
and(
eq(adDomains.connectionId, connectionId),
eq(adDomains.objectGUID, objectGUID)
)
)
.returning();
return result.length > 0 ? result[0] : undefined;
}
async deleteAdDomain(id: number): Promise<boolean> {
const result = await db.delete(adDomains).where(eq(adDomains.id, id)).returning({ id: adDomains.id });
return result.length > 0;
}
async deleteAdDomainByGuid(connectionId: number, objectGUID: string): Promise<boolean> {
const result = await db.delete(adDomains)
.where(
and(
eq(adDomains.connectionId, connectionId),
eq(adDomains.objectGUID, objectGUID)
)
)
.returning({ id: adDomains.id });
return result.length > 0;
}
async listAdDomains(connectionId: number, query?: any): Promise<AdDomain[]> {
let adDomainsQuery = db.select().from(adDomains).where(eq(adDomains.connectionId, connectionId));