diff --git a/server/database-storage.ts b/server/database-storage.ts index fcb5460..837fcbc 100644 --- a/server/database-storage.ts +++ b/server/database-storage.ts @@ -386,26 +386,89 @@ export class DatabaseStorage implements IStorage { // DNS Record management async getDnsRecord(id: string): Promise { - const [record] = await db.select().from(dnsRecords).where(eq(dnsRecords.id, id)); + const [record] = await db.select({ + id: dnsRecords.id, + domainId: dnsRecords.domainId, + name: dnsRecords.name, + type: dnsRecords.type, + content: dnsRecords.content, + ttl: dnsRecords.ttl, + isActive: dnsRecords.isActive, + isAutoIP: dnsRecords.isAutoIP, + notes: dnsRecords.notes, + providerId: dnsRecords.providerId, + lastUpdated: dnsRecords.lastUpdated, + createdAt: dnsRecords.createdAt + }) + .from(dnsRecords) + .where(eq(dnsRecords.id, id)); return record; } async getDnsRecordsByDomain(domainId: string): Promise { - return await db.select() + return await db.select({ + id: dnsRecords.id, + domainId: dnsRecords.domainId, + name: dnsRecords.name, + type: dnsRecords.type, + content: dnsRecords.content, + ttl: dnsRecords.ttl, + isActive: dnsRecords.isActive, + isAutoIP: dnsRecords.isAutoIP, + notes: dnsRecords.notes, + providerId: dnsRecords.providerId, + lastUpdated: dnsRecords.lastUpdated, + createdAt: dnsRecords.createdAt + }) .from(dnsRecords) .where(eq(dnsRecords.domainId, domainId)); } async createDnsRecord(record: InsertDnsRecord): Promise { - const [newRecord] = await db.insert(dnsRecords).values(record).returning(); + // Filter out the proxied field if it exists + const { proxied, ...recordData } = record as any; + + // Insert the record without the proxied field + const [newRecord] = await db.insert(dnsRecords).values(recordData).returning({ + id: dnsRecords.id, + domainId: dnsRecords.domainId, + name: dnsRecords.name, + type: dnsRecords.type, + content: dnsRecords.content, + ttl: dnsRecords.ttl, + isActive: dnsRecords.isActive, + isAutoIP: dnsRecords.isAutoIP, + notes: dnsRecords.notes, + providerId: dnsRecords.providerId, + lastUpdated: dnsRecords.lastUpdated, + createdAt: dnsRecords.createdAt + }); + return newRecord; } async updateDnsRecord(id: string, recordData: Partial): Promise { + // Filter out the proxied field if it exists + const { proxied, ...filteredData } = recordData as any; + const [updatedRecord] = await db.update(dnsRecords) - .set({ ...recordData, lastUpdated: new Date() }) + .set({ ...filteredData, lastUpdated: new Date() }) .where(eq(dnsRecords.id, id)) - .returning(); + .returning({ + id: dnsRecords.id, + domainId: dnsRecords.domainId, + name: dnsRecords.name, + type: dnsRecords.type, + content: dnsRecords.content, + ttl: dnsRecords.ttl, + isActive: dnsRecords.isActive, + isAutoIP: dnsRecords.isAutoIP, + notes: dnsRecords.notes, + providerId: dnsRecords.providerId, + lastUpdated: dnsRecords.lastUpdated, + createdAt: dnsRecords.createdAt + }); + return updatedRecord; }