Added initial APIs for Marathon
parent
143d0772f2
commit
35a4b780a7
@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>aps-environment</key>
|
||||||
|
<string>development</string>
|
||||||
|
<key>com.apple.developer.icloud-container-identifiers</key>
|
||||||
|
<array>
|
||||||
|
<string>iCloud.com.cloudsolutions.mohemm</string>
|
||||||
|
</array>
|
||||||
|
<key>com.apple.developer.icloud-services</key>
|
||||||
|
<array>
|
||||||
|
<string>CloudDocuments</string>
|
||||||
|
</array>
|
||||||
|
<key>com.apple.developer.networking.HotspotConfiguration</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.developer.networking.networkextension</key>
|
||||||
|
<array/>
|
||||||
|
<key>com.apple.developer.networking.wifi-info</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.developer.nfc.readersession.formats</key>
|
||||||
|
<array>
|
||||||
|
<string>TAG</string>
|
||||||
|
</array>
|
||||||
|
<key>com.apple.developer.ubiquity-container-identifiers</key>
|
||||||
|
<array>
|
||||||
|
<string>iCloud.com.cloudsolutions.mohemm</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@ -0,0 +1,71 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:http/http.dart';
|
||||||
|
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/models/marathon/marathon_generic_model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/marathon/marathon_model.dart';
|
||||||
|
|
||||||
|
class MarathonApiClient {
|
||||||
|
Future<String> getMarathonToken() async {
|
||||||
|
String employeeUserName = AppState().getUserName ?? "";
|
||||||
|
String employeeSession = AppState().postParamsObject?.pSessionId.toString() ?? "";
|
||||||
|
|
||||||
|
Map<String, String> jsonObject = {"userName": employeeUserName, "password": employeeSession};
|
||||||
|
Response response = await ApiClient().postJsonForResponse(ApiConsts.marathonParticipantLoginUrl, jsonObject);
|
||||||
|
|
||||||
|
var json = jsonDecode(response.body);
|
||||||
|
|
||||||
|
MarathonGenericModel marathonModel = MarathonGenericModel.fromJson(json);
|
||||||
|
|
||||||
|
if (marathonModel.statusCode == 200) {
|
||||||
|
if (marathonModel.data != null && marathonModel.isSuccessful == true) {
|
||||||
|
print("bearerToken: ${marathonModel.data["token"]}");
|
||||||
|
AppState().setMarathonToken = marathonModel.data["token"] ?? "";
|
||||||
|
return marathonModel.data["token"] ?? "";
|
||||||
|
} else {
|
||||||
|
//TODO : DO ERROR HANDLING HERE
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//TODO : DO ERROR HANDLING HERE
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<String> getProjectId() async {
|
||||||
|
Response response = await ApiClient().postJsonForResponse(ApiConsts.marathonProjectGetUrl, <String, dynamic>{}, token: AppState().getMarathonToken ?? await getMarathonToken());
|
||||||
|
|
||||||
|
var json = jsonDecode(response.body);
|
||||||
|
MarathonGenericModel marathonModel = MarathonGenericModel.fromJson(json);
|
||||||
|
|
||||||
|
if (marathonModel.statusCode == 200) {
|
||||||
|
if (marathonModel.data != null && marathonModel.isSuccessful == true) {
|
||||||
|
print("projectID: ${marathonModel.data[0]["id"]}");
|
||||||
|
AppState().setMarathonProjectId = marathonModel.data[0]["id"] ?? "";
|
||||||
|
return marathonModel.data[0]["id"] ?? "";
|
||||||
|
} else {
|
||||||
|
//TODO : DO ERROR HANDLING HERE
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//TODO : DO ERROR HANDLING HERE
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<MarathonDetailModel> getMarathonDetails() async {
|
||||||
|
String payrollString = AppState().postParamsObject?.payrollCodeStr.toString() ?? "CS";
|
||||||
|
|
||||||
|
Response response = await ApiClient().getJsonForResponse(ApiConsts.marathonUpcomingUrl + payrollString, token: AppState().getMarathonToken ?? await getMarathonToken());
|
||||||
|
|
||||||
|
var json = jsonDecode(response.body);
|
||||||
|
|
||||||
|
MarathonGenericModel marathonGenericModel = MarathonGenericModel.fromJson(json);
|
||||||
|
|
||||||
|
MarathonDetailModel marathonDetailModel = MarathonDetailModel.fromJson(marathonGenericModel.data);
|
||||||
|
|
||||||
|
return marathonDetailModel;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
class MarathonGenericModel {
|
||||||
|
MarathonGenericModel({
|
||||||
|
this.data,
|
||||||
|
this.isSuccessful,
|
||||||
|
this.message,
|
||||||
|
this.statusCode,
|
||||||
|
this.errors,
|
||||||
|
});
|
||||||
|
|
||||||
|
dynamic data;
|
||||||
|
bool? isSuccessful;
|
||||||
|
String? message;
|
||||||
|
int? statusCode;
|
||||||
|
dynamic errors;
|
||||||
|
|
||||||
|
factory MarathonGenericModel.fromJson(Map<String, dynamic> json) => MarathonGenericModel(
|
||||||
|
data: json["data"],
|
||||||
|
isSuccessful: json["isSuccessful"],
|
||||||
|
message: json["message"],
|
||||||
|
statusCode: json["statusCode"],
|
||||||
|
errors: json["errors"],
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => {
|
||||||
|
"data": data,
|
||||||
|
"isSuccessful": isSuccessful,
|
||||||
|
"message": message,
|
||||||
|
"statusCode": statusCode,
|
||||||
|
"errors": errors,
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -0,0 +1,83 @@
|
|||||||
|
class MarathonDetailModel {
|
||||||
|
String? id;
|
||||||
|
String? titleEn;
|
||||||
|
String? titleAr;
|
||||||
|
String? descEn;
|
||||||
|
String? descAr;
|
||||||
|
int? winDeciderTime;
|
||||||
|
int? winnersCount;
|
||||||
|
int? questGapTime;
|
||||||
|
String? startTime;
|
||||||
|
String? endTime;
|
||||||
|
int? marathoneStatusId;
|
||||||
|
String? scheduleTime;
|
||||||
|
int? selectedLanguage;
|
||||||
|
List? projects;
|
||||||
|
List? sponsors;
|
||||||
|
List? questions;
|
||||||
|
|
||||||
|
MarathonDetailModel(
|
||||||
|
{id,
|
||||||
|
titleEn,
|
||||||
|
titleAr,
|
||||||
|
descEn,
|
||||||
|
descAr,
|
||||||
|
winDeciderTime,
|
||||||
|
winnersCount,
|
||||||
|
questGapTime,
|
||||||
|
startTime,
|
||||||
|
endTime,
|
||||||
|
marathoneStatusId,
|
||||||
|
scheduleTime,
|
||||||
|
selectedLanguage,
|
||||||
|
projects,
|
||||||
|
sponsors,
|
||||||
|
questions});
|
||||||
|
|
||||||
|
MarathonDetailModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
id = json['id'];
|
||||||
|
titleEn = json['titleEn'];
|
||||||
|
titleAr = json['titleAr'];
|
||||||
|
descEn = json['descEn'];
|
||||||
|
descAr = json['descAr'];
|
||||||
|
winDeciderTime = json['winDeciderTime'];
|
||||||
|
winnersCount = json['winnersCount'];
|
||||||
|
questGapTime = json['questGapTime'];
|
||||||
|
startTime = json['startTime'];
|
||||||
|
endTime = json['endTime'];
|
||||||
|
marathoneStatusId = json['marathoneStatusId'];
|
||||||
|
scheduleTime = json['scheduleTime'];
|
||||||
|
selectedLanguage = json['selectedLanguage'];
|
||||||
|
projects = json['projects'];
|
||||||
|
sponsors = json['sponsors'];
|
||||||
|
if (json['questions'] != null) {
|
||||||
|
questions = <Null>[];
|
||||||
|
json['questions'].forEach((v) {
|
||||||
|
// questions!.add( Null.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['id'] = id;
|
||||||
|
data['titleEn'] = titleEn;
|
||||||
|
data['titleAr'] = titleAr;
|
||||||
|
data['descEn'] = descEn;
|
||||||
|
data['descAr'] = descAr;
|
||||||
|
data['winDeciderTime'] = winDeciderTime;
|
||||||
|
data['winnersCount'] = winnersCount;
|
||||||
|
data['questGapTime'] = questGapTime;
|
||||||
|
data['startTime'] = startTime;
|
||||||
|
data['endTime'] = endTime;
|
||||||
|
data['marathoneStatusId'] = marathoneStatusId;
|
||||||
|
data['scheduleTime'] = scheduleTime;
|
||||||
|
data['selectedLanguage'] = selectedLanguage;
|
||||||
|
data['projects'] = projects;
|
||||||
|
data['sponsors'] = sponsors;
|
||||||
|
if (questions != null) {
|
||||||
|
data['questions'] = questions!.map((v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue