|
|
|
|
@ -1,14 +1,19 @@
|
|
|
|
|
import 'dart:convert';
|
|
|
|
|
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:http/http.dart';
|
|
|
|
|
import 'package:logger/logger.dart' as L;
|
|
|
|
|
import 'package:mohem_flutter_app/api/api_client.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/app_state/app_state.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/classes/consts.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/classes/utils.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/config/routes.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/models/marathon/marathon_generic_model.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/models/marathon/marathon_model.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/models/marathon/question_model.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/models/marathon/winner_model.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
import 'package:signalr_netcore/hub_connection.dart';
|
|
|
|
|
|
|
|
|
|
class MarathonApiClient {
|
|
|
|
|
@ -41,6 +46,17 @@ class MarathonApiClient {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Future<GenericResponseModel?> getGetMenuEntries() async {
|
|
|
|
|
// String url = "${ApiConsts.erpRest}GET_MENU_ENTRIES";
|
|
|
|
|
// Map<String, dynamic> postParams = {"P_SELECTED_RESP_ID": -999, "P_MENU_TYPE": "E"};
|
|
|
|
|
// postParams.addAll(AppState().postParamsJson);
|
|
|
|
|
// return await ApiClient().postJsonForObject((json) {
|
|
|
|
|
// GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
|
|
|
|
// return responseData;
|
|
|
|
|
// }, url, postParams);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
Future<String> getProjectId() async {
|
|
|
|
|
Response response = await ApiClient().postJsonForResponse(ApiConsts.marathonProjectGetUrl, <String, dynamic>{}, token: AppState().getMarathonToken ?? await getMarathonToken());
|
|
|
|
|
|
|
|
|
|
@ -123,12 +139,53 @@ class MarathonApiClient {
|
|
|
|
|
|
|
|
|
|
var json = jsonDecode(response.body);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
logger.i("json in NextQuestion: $json");
|
|
|
|
|
var data = json["data"];
|
|
|
|
|
MarathonGenericModel marathonModel = MarathonGenericModel.fromJson(json);
|
|
|
|
|
|
|
|
|
|
if (marathonModel.statusCode == 404) {
|
|
|
|
|
Utils.confirmDialog(
|
|
|
|
|
AppRoutes.navigatorKey.currentContext,
|
|
|
|
|
marathonModel.message!,
|
|
|
|
|
onTap: () {
|
|
|
|
|
AppRoutes.navigatorKey.currentContext!.read<MarathonProvider>().resetValues();
|
|
|
|
|
Navigator.of(
|
|
|
|
|
AppRoutes.navigatorKey.currentContext!,
|
|
|
|
|
).popUntil(ModalRoute.withName(AppRoutes.dashboard));
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (data != null) {
|
|
|
|
|
QuestionModel newQuestion = QuestionModel.fromJson(data);
|
|
|
|
|
if (marathonModel.statusCode == 208) {
|
|
|
|
|
Utils.confirmDialog(
|
|
|
|
|
AppRoutes.navigatorKey.currentContext,
|
|
|
|
|
marathonModel.message!,
|
|
|
|
|
onTap: () {
|
|
|
|
|
AppRoutes.navigatorKey.currentContext!.read<MarathonProvider>().resetValues();
|
|
|
|
|
Navigator.of(
|
|
|
|
|
AppRoutes.navigatorKey.currentContext!,
|
|
|
|
|
).popUntil(ModalRoute.withName(AppRoutes.dashboard));
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (marathonModel.statusCode == 204) {
|
|
|
|
|
Utils.confirmDialog(
|
|
|
|
|
AppRoutes.navigatorKey.currentContext,
|
|
|
|
|
marathonModel.message!,
|
|
|
|
|
onTap: () {
|
|
|
|
|
AppRoutes.navigatorKey.currentContext!.read<MarathonProvider>().resetValues();
|
|
|
|
|
Navigator.of(
|
|
|
|
|
AppRoutes.navigatorKey.currentContext!,
|
|
|
|
|
).popUntil(ModalRoute.withName(AppRoutes.dashboard));
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (marathonModel.data != null && marathonModel.isSuccessful == true) {
|
|
|
|
|
QuestionModel newQuestion = QuestionModel.fromJson(marathonModel.data);
|
|
|
|
|
return newQuestion;
|
|
|
|
|
} else {
|
|
|
|
|
return null;
|
|
|
|
|
|