MCPcopy Create free account
hub / github.com/Thanas-R/Virdis / fetchSoil

Function fetchSoil

src/components/FieldDetailView.tsx:268–284  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

266 const cached = getFreshLocalCacheValue<SoilData>(SOIL_CACHE_KEY, field.id, QUERY_CACHE_TTL_MS);
267 if (cached) { setSoilData(cached); return; }
268 const fetchSoil = async () => {
269 setSoilLoading(true);
270 try {
271 const data = await invokeWithRetry<any>(
272 "soil-data",
273 { lat: fieldCenter.lat, lon: fieldCenter.lng },
274 { retries: 3, isEmpty: (d) => !hasSoilPayload(d) }
275 );
276 if (hasSoilPayload(data)) {
277 setSoilData(data);
278 setLocalCache(SOIL_CACHE_KEY, field.id, data);
279 } else {
280 setSoilData(cached ?? null);
281 }
282 } catch (e) { console.error("Soil data error:", e); setSoilData(cached ?? null); }
283 finally { setSoilLoading(false); }
284 };
285 fetchSoil();
286 }, [field.id, fieldCenter]);
287

Callers 1

FieldDetailViewFunction · 0.70

Calls 2

hasSoilPayloadFunction · 0.90
setLocalCacheFunction · 0.90

Tested by

no test coverage detected