UPDATE
This commit is contained in:
@@ -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)
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user