+35
-15
src/lib/dns-verification-worker.ts
+35
-15
src/lib/dns-verification-worker.ts
···
71
};
72
73
try {
74
-
// Get all verified custom domains
75
-
const domains = await db`
76
-
SELECT id, domain, did FROM custom_domains WHERE verified = true
77
`;
78
79
if (!domains || domains.length === 0) {
80
-
this.log('No verified custom domains to check');
81
this.lastRunTime = Date.now();
82
return;
83
}
84
85
-
this.log(`Checking ${domains.length} verified custom domains`);
86
87
// Verify each domain
88
for (const row of domains) {
89
runStats.totalChecked++;
90
-
const { id, domain, did } = row;
91
92
try {
93
// Extract hash from id (SHA256 of did:domain)
···
97
const result = await verifyCustomDomain(domain, did, expectedHash);
98
99
if (result.verified) {
100
-
// Update last_verified_at timestamp
101
await db`
102
UPDATE custom_domains
103
-
SET last_verified_at = EXTRACT(EPOCH FROM NOW())
104
WHERE id = ${id}
105
`;
106
runStats.verified++;
107
-
this.log(`Domain verified: ${domain}`, { did });
108
} else {
109
-
// Mark domain as unverified
110
await db`
111
UPDATE custom_domains
112
SET verified = false,
···
114
WHERE id = ${id}
115
`;
116
runStats.failed++;
117
-
this.log(`Domain verification failed: ${domain}`, {
118
-
did,
119
-
error: result.error,
120
-
found: result.found,
121
-
});
122
}
123
} catch (error) {
124
runStats.errors++;
···
71
};
72
73
try {
74
+
// Get all custom domains (both verified and pending)
75
+
const domains = await db<Array<{
76
+
id: string;
77
+
domain: string;
78
+
did: string;
79
+
verified: boolean;
80
+
}>>`
81
+
SELECT id, domain, did, verified FROM custom_domains
82
`;
83
84
if (!domains || domains.length === 0) {
85
+
this.log('No custom domains to check');
86
this.lastRunTime = Date.now();
87
return;
88
}
89
90
+
const verifiedCount = domains.filter(d => d.verified).length;
91
+
const pendingCount = domains.filter(d => !d.verified).length;
92
+
this.log(`Checking ${domains.length} custom domains (${verifiedCount} verified, ${pendingCount} pending)`);
93
94
// Verify each domain
95
for (const row of domains) {
96
runStats.totalChecked++;
97
+
const { id, domain, did, verified: wasVerified } = row;
98
99
try {
100
// Extract hash from id (SHA256 of did:domain)
···
104
const result = await verifyCustomDomain(domain, did, expectedHash);
105
106
if (result.verified) {
107
+
// Update verified status and last_verified_at timestamp
108
await db`
109
UPDATE custom_domains
110
+
SET verified = true,
111
+
last_verified_at = EXTRACT(EPOCH FROM NOW())
112
WHERE id = ${id}
113
`;
114
runStats.verified++;
115
+
if (!wasVerified) {
116
+
this.log(`Domain newly verified: ${domain}`, { did });
117
+
} else {
118
+
this.log(`Domain re-verified: ${domain}`, { did });
119
+
}
120
} else {
121
+
// Mark domain as unverified or keep it pending
122
await db`
123
UPDATE custom_domains
124
SET verified = false,
···
126
WHERE id = ${id}
127
`;
128
runStats.failed++;
129
+
if (wasVerified) {
130
+
this.log(`Domain verification failed (was verified): ${domain}`, {
131
+
did,
132
+
error: result.error,
133
+
found: result.found,
134
+
});
135
+
} else {
136
+
this.log(`Domain still pending: ${domain}`, {
137
+
did,
138
+
error: result.error,
139
+
found: result.found,
140
+
});
141
+
}
142
}
143
} catch (error) {
144
runStats.errors++;