This commit is contained in:
2026-04-11 03:50:23 +03:30
parent 76362309c8
commit d43bd74a06
30 changed files with 1024 additions and 758 deletions
+65
View File
@@ -0,0 +1,65 @@
import { apiClient } from '../client'
const PREFIX = '/api/soil'
export interface SoilSummary {
avg_soil_moisture?: Record<string, unknown>
sensorRadarChart?: Record<string, unknown>
sensorComparisonChart?: Record<string, unknown>
anomalyDetectionCard?: Record<string, unknown>
soilMoistureHeatmap?: Record<string, unknown>
}
interface ApiResponse<T> {
code: number
msg: string
data: T
}
function extract<T>(res: ApiResponse<T> | T): T {
return res && typeof res === 'object' && 'data' in res ? (res as ApiResponse<T>).data : (res as T)
}
export const soilService = {
async getSummary(farmUuid: string): Promise<SoilSummary> {
const res = await apiClient.get<ApiResponse<SoilSummary> | SoilSummary>(
`${PREFIX}/summary/?farm_uuid=${encodeURIComponent(farmUuid)}`
)
return extract(res)
},
async getAvgMoisture(farmUuid: string): Promise<Record<string, unknown>> {
const res = await apiClient.get<ApiResponse<Record<string, unknown>> | Record<string, unknown>>(
`${PREFIX}/avg-moisture/?farm_uuid=${encodeURIComponent(farmUuid)}`
)
return extract(res)
},
async getSensorRadarChart(farmUuid: string): Promise<Record<string, unknown>> {
const res = await apiClient.get<ApiResponse<Record<string, unknown>> | Record<string, unknown>>(
`${PREFIX}/sensor-radar-chart/?farm_uuid=${encodeURIComponent(farmUuid)}`
)
return extract(res)
},
async getSensorComparisonChart(farmUuid: string): Promise<Record<string, unknown>> {
const res = await apiClient.get<ApiResponse<Record<string, unknown>> | Record<string, unknown>>(
`${PREFIX}/sensor-comparison-chart/?farm_uuid=${encodeURIComponent(farmUuid)}`
)
return extract(res)
},
async getAnomalies(farmUuid: string): Promise<Record<string, unknown>> {
const res = await apiClient.get<ApiResponse<Record<string, unknown>> | Record<string, unknown>>(
`${PREFIX}/anomalies/?farm_uuid=${encodeURIComponent(farmUuid)}`
)
return extract(res)
},
async getMoistureHeatmap(farmUuid: string): Promise<Record<string, unknown>> {
const res = await apiClient.get<ApiResponse<Record<string, unknown>> | Record<string, unknown>>(
`${PREFIX}/moisture-heatmap/?farm_uuid=${encodeURIComponent(farmUuid)}`
)
return extract(res)
},
}