diff --git a/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_bloc.dart b/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_bloc.dart index b760ef84..a5c3cdb7 100644 --- a/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_bloc.dart +++ b/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_bloc.dart @@ -84,6 +84,10 @@ class DiaryEditBloc extends Bloc { commentController: currentState.commentController, mealTimeController: currentState.mealTimeController, productNameController: currentState.productNameController, + caloriesController: currentState.caloriesController, + proteinsController: currentState.proteinsController, + fatsController: currentState.fatsController, + carbsController: currentState.carbsController, selectedSatiety: currentState.selectedSatiety, selectedMood: currentState.selectedMood, portions: currentState.portions, @@ -114,6 +118,10 @@ class DiaryEditBloc extends Bloc { TextEditingController(text: diary['comment']), productNameController: TextEditingController(), productQuantityController: TextEditingController(), + caloriesController: TextEditingController(), + proteinsController: TextEditingController(), + fatsController: TextEditingController(), + carbsController: TextEditingController(), diaryId: diaryId, diaryDate: diaryDate, autocompleteList: [], @@ -198,6 +206,10 @@ class DiaryEditBloc extends Bloc { TextEditingController(text: diary['comment']), productNameController: TextEditingController(), productQuantityController: TextEditingController(), + caloriesController: TextEditingController(), + proteinsController: TextEditingController(), + fatsController: TextEditingController(), + carbsController: TextEditingController(), diaryId: diaryId, diaryDate: diaryDate, autocompleteList: [], @@ -691,7 +703,10 @@ class DiaryEditBloc extends Bloc { currentState.token, ); - print(response); + if (response.statusCode == 200) + print("Moderation success"); + else + print("Moderation error"); } } @@ -702,28 +717,31 @@ class DiaryEditBloc extends Bloc { String fats_on_100gr, String carbohydrates_on_100gr, String? token) async { - String url = - '${dotenv.env['SERVER_ROOT']!}/diary/product_nutritional_values/sendToModeration'; - var serverURL = Uri.parse('${dotenv.env['SERVER_ROOT']!}'); + final Uri url = Uri.parse( + '${dotenv.env['SERVER_ROOT']!}/diary/product_nutritional_values/sendToModeration'); + final Uri serverURL = Uri.parse('${dotenv.env['SERVER_ROOT']!}'); String host = serverURL.host; - final Map credentials = { + final Map credentials = { 'name': name, 'energy_on_100gr': energy_on_100gr, 'proteins_on_100gr': proteins_on_100gr, 'fats_on_100gr': fats_on_100gr, 'carbohydrates_on_100gr': carbohydrates_on_100gr, }; - var bodyBytes = utf8.encode(json.encode(credentials)); + + var headers = { + //'Content-Length': bodyBytes, + 'Authorization': 'Bearer $token', + 'Host': host, + }; + var response = await http.post( - Uri.parse(url), - headers: { - 'Content-Type': 'application/json', - 'Content-Length': '${bodyBytes.length}', - 'Authorization': 'Bearer $token', - 'Host': host, - }, - body: bodyBytes, + url, + headers: headers, + body: credentials, + encoding: utf8, ); + if (response.statusCode == 200) { return response; } else { diff --git a/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_state.dart b/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_state.dart index e3dd4025..80930398 100644 --- a/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_state.dart +++ b/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_state.dart @@ -33,6 +33,10 @@ class DiaryEditLoadedState extends DiaryEditState { this.productQuantityController, this.selectedMood, this.currentMeal, + this.caloriesController, + this.fatsController, + this.proteinsController, + this.carbsController, required this.diaryId, required this.selectedSatiety, required this.moderationExpanded, @@ -53,6 +57,10 @@ class DiaryEditLoadedState extends DiaryEditState { TextEditingController? commentController; TextEditingController? productNameController; TextEditingController? productQuantityController; + TextEditingController? caloriesController; + TextEditingController? fatsController; + TextEditingController? proteinsController; + TextEditingController? carbsController; int? selectedMood; int selectedSatiety; int diaryId; @@ -72,6 +80,10 @@ class DiaryEditLoadedState extends DiaryEditState { commentController, productNameController, productQuantityController, + caloriesController, + fatsController, + proteinsController, + carbsController, selectedMood, selectedSatiety, diaryId, @@ -94,6 +106,10 @@ class DiaryEditLoadedState extends DiaryEditState { TextEditingController? commentController, TextEditingController? productNameController, TextEditingController? productQuantityController, + TextEditingController? caloriesController, + TextEditingController? fatsController, + TextEditingController? proteinsController, + TextEditingController? carbsController, int? selectedMood, int? selectedSatiety, int? diaryId, @@ -120,6 +136,10 @@ class DiaryEditLoadedState extends DiaryEditState { selectedSatiety: selectedSatiety ?? this.selectedSatiety, diaryId: diaryId ?? this.diaryId, currentMeal: currentMeal ?? this.currentMeal, + caloriesController: caloriesController ?? this.caloriesController, + fatsController: fatsController ?? this.fatsController, + proteinsController: proteinsController ?? this.proteinsController, + carbsController: carbsController ?? this.carbsController, wakeupExpanded: wakeupExpanded ?? this.wakeupExpanded, moderationExpanded: moderationExpanded ?? this.moderationExpanded, moodExpanded: moodExpanded ?? this.moodExpanded); diff --git a/lib/presentation/diary/diary_edit_screen/diary_edit_screen.dart b/lib/presentation/diary/diary_edit_screen/diary_edit_screen.dart index 43ff4259..4b5ff998 100644 --- a/lib/presentation/diary/diary_edit_screen/diary_edit_screen.dart +++ b/lib/presentation/diary/diary_edit_screen/diary_edit_screen.dart @@ -309,13 +309,13 @@ class DiaryEditScreen extends StatelessWidget { optionsBuilder: buildOptions(_options), fieldViewBuilder: ( BuildContext context, - TextEditingController textEditingController, + TextEditingController productEditingController, FocusNode focusNodeName, VoidCallback onFieldSubmitted, ) { return CustomTextFormField( hintText: "Введите название продукта", - controller: textEditingController, + controller: productEditingController, focusNode: focusNodeName, onChanged: getAutocomplete(context, focusNodeQuantity), /*onFieldSubmitted: (String value) { @@ -357,7 +357,7 @@ class DiaryEditScreen extends StatelessWidget { Padding( padding: EdgeInsets.symmetric(horizontal: 10.h), child: GestureDetector( - onTap: () => openCaloriesDialog(context), + onTap: () => openCaloriesDialog(context, state), child: Text("Отправить на модерацию"), ), ), @@ -449,33 +449,7 @@ class DiaryEditScreen extends StatelessWidget { )); } - openCaloriesDialog(BuildContext context) { - String name = ''; - String energyOn100gr = ''; - String proteinsOn100gr = ''; - String fatsOn100gr = ''; - String carbohydratesOn100gr = ''; - - void onNameChanged(String value) { - name = value; - } - - void onEnergyChanged(String value) { - energyOn100gr = value; - } - - void onProteinsChanged(String value) { - proteinsOn100gr = value; - } - - void onFatsChanged(String value) { - fatsOn100gr = value; - } - - void onCarbohydratesChanged(String value) { - carbohydratesOn100gr = value; - } - + openCaloriesDialog(BuildContext context, DiaryEditLoadedState state) { showDialog( context: context, builder: (BuildContext dialogContext) { @@ -486,31 +460,31 @@ class DiaryEditScreen extends StatelessWidget { children: [ CustomTextFormField( hintText: "Название", - onChanged: onNameChanged, + controller: state.productNameController, ), SizedBox(height: 10.v), CustomTextFormField( - onChanged: onEnergyChanged, hintText: "Энергетическая ценность на 100", keyboardType: TextInputType.number, + controller: state.caloriesController, ), SizedBox(height: 10.v), CustomTextFormField( hintText: "Белки на 100г", - onChanged: onProteinsChanged, keyboardType: TextInputType.number, + controller: state.proteinsController, ), SizedBox(height: 10.v), CustomTextFormField( hintText: "Жиры на 100г", - onChanged: onFatsChanged, keyboardType: TextInputType.number, + controller: state.fatsController, ), SizedBox(height: 10.v), CustomTextFormField( hintText: "Углеводы на 100г", - onChanged: onCarbohydratesChanged, keyboardType: TextInputType.number, + controller: state.carbsController, ), ], ), @@ -522,11 +496,11 @@ class DiaryEditScreen extends StatelessWidget { TextButton( onPressed: triggerModeration( context, - name, - energyOn100gr, - proteinsOn100gr, - fatsOn100gr, - carbohydratesOn100gr, + state.productNameController!.text, + state.caloriesController!.text, + state.proteinsController!.text, + state.fatsController!.text, + state.carbsController!.text, dialogContext), child: Text('Отправить'), ),