diff --git a/lib/models/menu_model.dart b/lib/models/menu_model.dart index 9a16210..f263d1a 100644 --- a/lib/models/menu_model.dart +++ b/lib/models/menu_model.dart @@ -1,24 +1,38 @@ // 1. 최상위 응답 모델 class MenuResponse { final String date; - final String school; - final List cafeterias; + final School schools; MenuResponse({ required this.date, - required this.school, - required this.cafeterias, + required this.schools, }); factory MenuResponse.fromJson(Map json) { + return MenuResponse( + date: json['date'], + schools: School.fromJson(json['schools']), + ); + } +} + +class School { + final String schoolName; + final List cafeterias; + + School({ + required this.schoolName, + required this.cafeterias, + }); + + factory School.fromJson(Map json) { // 'cafeterias' 배열을 Cafeteria 객체 리스트로 변환 var cafeteriaList = (json['cafeterias'] as List) .map((item) => Cafeteria.fromJson(item)) .toList(); - return MenuResponse( - date: json['date'], - school: json['school'], + return School( + schoolName: json['schoolName'], cafeterias: cafeteriaList, ); } diff --git a/lib/repositories/meal_repository.dart b/lib/repositories/meal_repository.dart index 0bf72fe..3aa041e 100644 --- a/lib/repositories/meal_repository.dart +++ b/lib/repositories/meal_repository.dart @@ -117,7 +117,8 @@ class MealRepository { await isar.meals.filter().dateEqualTo(responseDate).deleteAll(); final newMeals = []; - for (var cafeteria in response.cafeterias) { + + for (var cafeteria in response.schools.cafeterias) { final restaurant = await _getOrCreateRestaurant(cafeteria, isToday); final meals = _createMealsFromCafeteria( cafeteria, diff --git a/lib/services/menu_service.dart b/lib/services/menu_service.dart index 3944630..113ef3e 100644 --- a/lib/services/menu_service.dart +++ b/lib/services/menu_service.dart @@ -12,7 +12,10 @@ class MenuService { String formattedDate = '${date.year}-${date.month.toString().padLeft(2, '0')}-${date.day.toString().padLeft(2, '0')}'; - final response = await http.get(Uri.parse('$_baseUrl?date=$formattedDate')); + // TODO: 나중에 학교 선택에 따라 달라지게 처리 (임시로 인하대학교로 고정) + final response = await http.get( + Uri.parse('$_baseUrl?date=$formattedDate&school=인하대학교'), + ); if (response.statusCode == 200) { // 성공하면, JSON 문자열을 Map으로 디코딩