fetchCowData method Null safety
소 데이터를 가져옵니다.
cow_ids: 소 개체의 아이디를 배열 문자열로 표현합니다. ex) "COW-10000000", "COW-10000001"
start_at: yyyy-MM-dd 포맷으로 시작 날짜를 표현합니다.
end_at: yyyy-MM-dd 포맷으로 끝 날짜를 표현합니다.
time_unit: 시간단위입니다. 일별데이터 안에 시간별데이터가 배열로 들어가있는 구조인건 다른 문서에도 적어놓아서 아실텐데, 1이면 1시간짜리 데이터를 가져오고 24면 하루 데이터를 가져옵니다. 예를 들어 time_unit이 1이면 24개의 1시간짜리 데이터가 들어있고, 24면 1개의 24시간짜리 데이터가 들어있습니다.
다른 Api 함수들은 Map으로 queryParameters 받고있는 형태를 띄지 않는데 이 메소드만 그렇게 받고 있습니다. (초기에 구현해서 그런듯합니다) 개선해도 좋을듯합니다.
Implementation
Future<List<CowData>?> fetchCowData({required Map<String, dynamic> queryParameters}) async {
LogManager().addLog("fetchCowData", screen: runtimeType.toString());
try {
final List<dynamic> body = await reqGET(
path: '/api/cow_data',
queryParameters: {
...queryParameters,
"farm_id": farmState.currentFarm!.id,
},
);
final List<CowData> cowData = body.map((element) => CowData.fromJson(element)).toList();
return cowData;
} catch (e) {
LogManager().addLog('fetchCowData call failed: $e', screen: runtimeType.toString());
return null;
}
}