MCPcopy
hub / github.com/CodebuffAI/codebuff / set

Function set

web/src/server/free-mode-country-access-cache.ts:131–181  ·  view source on GitHub ↗
({ userId, access, now })

Source from the content-addressed store, hash-verified

129 },
130
131 async set({ userId, access, now }) {
132 if (!shouldCacheCountryAccess(access)) return
133
134 const clientIpHash = access.clientIpHash
135 if (!clientIpHash) return
136
137 const expiresAt = expiresAtForCountryAccess(access, now)
138 const privacyDecision = getFreeModePrivacyDecision(access)
139 const privacyProviderDecision = getFreeModePrivacyProviderDecision(access)
140 await db
141 .insert(schema.freeModeCountryAccessCache)
142 .values({
143 user_id: userId,
144 client_ip_hash: clientIpHash,
145 allowed: access.allowed,
146 country_code: access.countryCode,
147 cf_country: access.cfCountry,
148 geoip_country: access.geoipCountry,
149 country_block_reason: access.blockReason,
150 ip_privacy_signals: access.ipPrivacy?.signals ?? null,
151 spur_ip_privacy_signals: access.spurIpPrivacy?.signals ?? null,
152 spur_status: access.spurStatus,
153 privacy_decision: privacyDecision,
154 privacy_provider_decision: privacyProviderDecision,
155 checked_at: now,
156 expires_at: expiresAt,
157 created_at: now,
158 updated_at: now,
159 })
160 .onConflictDoUpdate({
161 target: [
162 schema.freeModeCountryAccessCache.user_id,
163 schema.freeModeCountryAccessCache.client_ip_hash,
164 ],
165 set: {
166 allowed: access.allowed,
167 country_code: access.countryCode,
168 cf_country: access.cfCountry,
169 geoip_country: access.geoipCountry,
170 country_block_reason: access.blockReason,
171 ip_privacy_signals: access.ipPrivacy?.signals ?? null,
172 spur_ip_privacy_signals: access.spurIpPrivacy?.signals ?? null,
173 spur_status: access.spurStatus,
174 privacy_decision: privacyDecision,
175 privacy_provider_decision: privacyProviderDecision,
176 checked_at: now,
177 expires_at: expiresAt,
178 updated_at: now,
179 },
180 })
181 },
182 }
183
184export async function getCachedFreeModeCountryAccess(params: {

Callers 12

feedback-store.tsFile · 0.85
chat-store.tsFile · 0.85
review-store.tsFile · 0.85
login-store.tsFile · 0.85
publish-store.tsFile · 0.85
initializeThemeStoreFunction · 0.85
store-client.tsxFile · 0.85

Calls 5

shouldCacheCountryAccessFunction · 0.85
insertMethod · 0.80

Tested by

no test coverage detected