optimized

This commit is contained in:
Mohamed Nouffer
2023-10-06 16:25:21 +05:30
parent 7fdb6c05ee
commit 0e2a8f89f3
101 changed files with 50948 additions and 4137 deletions

View File

@ -10,308 +10,312 @@ import 'dart:convert';
import '../utils/const.dart';
//
//
// Rog type 0- start 1- checkin 2- goal
//
//
class ExternalService {
static final ExternalService _instance = ExternalService._internal();
factory ExternalService(){
factory ExternalService() {
return _instance;
}
ExternalService._internal();
String getFormatedTime(DateTime datetime){
return DateFormat('yyyy-MM-dd HH:mm:ss').format(datetime);
String getFormatedTime(DateTime datetime) {
return DateFormat('yyyy-MM-dd HH:mm:ss').format(datetime);
}
Future<Map<String, dynamic>> StartRogaining() async {
Future<Map<String, dynamic>> startRogaining() async {
final IndexController indexController = Get.find<IndexController>();
Map<String, dynamic> _res = {};
Map<String, dynamic> res = {};
int userId = indexController.currentUser[0]["user"]["id"];
//print("--- Pressed -----");
String _team = indexController.currentUser[0]["user"]['team_name'];
String team = indexController.currentUser[0]["user"]['team_name'];
//print("--- _team : ${_team}-----");
String _event_code = indexController.currentUser[0]["user"]["event_code"];
String eventCode = indexController.currentUser[0]["user"]["event_code"];
if(indexController.connectionStatusName != "wifi" && indexController.connectionStatusName != "mobile"){
if (indexController.connectionStatusName.value != "wifi" &&
indexController.connectionStatusName.value != "mobile") {
DatabaseHelper db = DatabaseHelper.instance;
Rog _rog = Rog(
id:1,
team_name: _team,
event_code : _event_code,
user_id: userId,
cp_number: -1,
checkintime: DateTime.now().toUtc().microsecondsSinceEpoch,
image: null,
rog_action_type: 0
);
db.insertRogaining(_rog);
}
else {
Rog rog = Rog(
id: 1,
team_name: team,
event_code: eventCode,
user_id: userId,
cp_number: -1,
checkintime: DateTime.now().toUtc().microsecondsSinceEpoch,
image: null,
rog_action_type: 0);
db.insertRogaining(rog);
} else {
String url = 'https://rogaining.sumasen.net/gifuroge/start_from_rogapp';
print('++++++++$url');
//print('++++++++$url');
final http.Response response = await http.post(
Uri.parse(url),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{
'team_name': _team,
'event_code': _event_code
}),
body: jsonEncode(
<String, String>{'team_name': team, 'event_code': eventCode}),
);
print("---- start rogianing api status ---- ${response.statusCode}");
//print("---- start rogianing api status ---- ${response.statusCode}");
if (response.statusCode == 200) {
_res = json.decode(utf8.decode(response.bodyBytes));
print('----_res : $_res ----');
res = json.decode(utf8.decode(response.bodyBytes));
//print('----_res : $res ----');
}
}
return _res;
return res;
}
Future<Map<String, dynamic>> makeCheckpoint(int userId, String token, String checkinTime, String teamname, int cp, String eventcode, String imageurl) async {
print("~~~~ in API call function ~~~~");
print("~~~~ cp is ${cp} ~~~~");
Future<Map<String, dynamic>> makeCheckpoint(
int userId,
String token,
String checkinTime,
String teamname,
int cp,
String eventcode,
String imageurl) async {
// print("~~~~ in API call function ~~~~");
// print("~~~~ cp is $cp ~~~~");
//print("--cpcp-- ${cp}");
Map<String, dynamic> _res = {};
Map<String, dynamic> res = {};
String url = 'https://rogaining.sumasen.net/gifuroge/checkin_from_rogapp';
print('++++++++$url');
//print('++++++++$url');
final IndexController indexController = Get.find<IndexController>();
if(imageurl != null){
if(indexController.connectionStatusName != "wifi" && indexController.connectionStatusName != "mobile"){
if (imageurl != null) {
if (indexController.connectionStatusName.value != "wifi" &&
indexController.connectionStatusName.value != "mobile") {
DatabaseHelper db = DatabaseHelper.instance;
Rog _rog = Rog(
id:1,
Rog rog = Rog(
id: 1,
team_name: teamname,
event_code : eventcode,
event_code: eventcode,
user_id: userId,
cp_number: cp,
checkintime: DateTime.now().toUtc().microsecondsSinceEpoch,
image: imageurl,
rog_action_type: 1,
);
db.insertRogaining(_rog);
}
else {
db.insertRogaining(rog);
} else {
String serverUrl = ConstValues.currentServer();
String url1 = "$serverUrl/api/checkinimage/";
final im1Bytes = File(imageurl).readAsBytesSync();
String im1_64 = base64Encode(im1Bytes);
print("~~~~ before calling api 1 ~~~~");
//print("~~~~ before calling api 1 ~~~~");
final http.Response response = await http.post(
Uri.parse(url1),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Token $token'
},
// 'id', 'user', 'goalimage', 'goaltime', 'team_name', 'event_code','cp_number'
body: jsonEncode(<String, String>{
'user' : userId.toString(),
'team_name': teamname,
'event_code': eventcode,
'checkinimage' : im1_64,
'checkintime' : checkinTime,
'cp_number' : cp.toString()
}),
);
Uri.parse(url1),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Token $token'
},
// 'id', 'user', 'goalimage', 'goaltime', 'team_name', 'event_code','cp_number'
body: jsonEncode(<String, String>{
'user': userId.toString(),
'team_name': teamname,
'event_code': eventcode,
'checkinimage': im1_64,
'checkintime': checkinTime,
'cp_number': cp.toString()
}),
);
_res = json.decode(utf8.decode(response.bodyBytes));
print("~~~~ api1 result ${_res} ~~~~");
//print("-----@@@@@ checkin $_res -----");
res = json.decode(utf8.decode(response.bodyBytes));
//print("~~~~ api1 result $res ~~~~");
//print("-----@@@@@ checkin $_res -----");
if(response.statusCode == 201){
print("~~~~ image from api1 ${_res["checkinimage"].toString()} ~~~~");
//print('---- toekn is ${token} -----');
print("~~~~ token is ${token} ~~~~");
print("~~~~ before callling api2 ~~~~");
final http.Response response2 = await http.post(
Uri.parse(url),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{
'team_name': teamname,
'cp_number': cp.toString(),
'event_code': eventcode,
'image': _res["checkinimage"].toString().replaceAll('http://localhost:8100', 'http://rogaining.sumasen.net')
}),
);
var vv = jsonEncode(<String, String>{
'team_name': teamname,
'cp_number': cp.toString(),
'event_code': eventcode,
'image': _res["checkinimage"].toString().replaceAll('http://localhost:8100', 'http://rogaining.sumasen.net')
});
print("~~~~ api 2 values ${vv} ~~~~");
//print("--json-- $vv");
//print("--- checnin response ${response2.statusCode}----");
if (response2.statusCode == 200) {
_res = json.decode(utf8.decode(response2.bodyBytes));
print('----checkin res _res : $_res ----');
if(_res["status"] == "ERROR"){
Get.snackbar("エラーがおきました", _res["detail"]);
}
}
}
else{
Get.snackbar("エラーがおきました", "サーバーに更新できませんでした");
}
}
}
else{
if(indexController.connectionStatusName != "wifi" || indexController.connectionStatusName != "mobile"){
DatabaseHelper db = DatabaseHelper.instance;
Rog _rog = Rog(
id:1,
team_name: teamname,
event_code : eventcode,
user_id: userId,
cp_number: cp,
checkintime: DateTime.now().toUtc().microsecondsSinceEpoch,
image: null,
rog_action_type: 1,
);
db.insertRogaining(_rog);
}
else {
final http.Response response3 = await http.post(
Uri.parse(url),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{
'team_name': teamname,
'cp_number': cp.toString(),
'event_code': eventcode,
'image': ""
}),
);
var vvv = jsonEncode(<String, String>{
'team_name': teamname,
'cp_number': cp.toString(),
'event_code': eventcode,
'image': _res["checkinimage"].toString().replaceAll('http://localhost:8100', 'http://rogaining.sumasen.net')
});
print("--json-- $vvv");
print("--- checnin response ${response3.statusCode}----");
if (response3.statusCode == 200) {
_res = json.decode(utf8.decode(response3.bodyBytes));
print('----checkin res _res : $_res ----');
}
}
}
print("~~~~ done checkin ~~~~");
return _res;
}
Future<Map<String, dynamic>> makeGoal(int userId, String token, String teamname, String image, String goalTime, String eventcode) async {
Map<String, dynamic> _res2 = {};
final IndexController indexController = Get.find<IndexController>();
final DestinationController destinationController = Get.find<DestinationController>();
//if(indexController.connectionStatusName != "wifi" && indexController.connectionStatusName != "mobile"){
DatabaseHelper db = DatabaseHelper.instance;
Rog _rog = Rog(
id:1,
team_name: teamname,
event_code : eventcode,
user_id: userId,
cp_number: -1,
checkintime: DateTime.now().toUtc().microsecondsSinceEpoch,
image: image,
rog_action_type: 1,
);
db.insertRogaining(_rog);
// }
// else{
String serverUrl = ConstValues.currentServer();
String url1 = "$serverUrl/api/goalimage/";
final im1Bytes = File(image).readAsBytesSync();
String im1_64 = base64Encode(im1Bytes);
final http.Response response = await http.post(
Uri.parse(url1),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Token $token'
},
// 'id', 'user', 'goalimage', 'goaltime', 'team_name', 'event_code','cp_number'
body: jsonEncode(<String, String>{
'user' : userId.toString(),
'team_name': teamname,
'event_code': eventcode,
'goaltime' : goalTime,
'goalimage' : im1_64,
'cp_number' : "-1"
}),
);
String url = 'https://rogaining.sumasen.net/gifuroge/goal_from_rogapp';
print('++++++++$url');
if (response.statusCode == 201) {
Map<String, dynamic> _res = json.decode(utf8.decode(response.bodyBytes));
print('----_res : $_res ----');
print('---- image url ${_res["goalimage"]} ----');
if (response.statusCode == 201) {
//print("~~~~ image from api1 ${res["checkinimage"].toString()} ~~~~");
//print('---- toekn is ${token} -----');
//print("~~~~ token is $token ~~~~");
//print("~~~~ before callling api2 ~~~~");
final http.Response response2 = await http.post(
Uri.parse(url),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{
'team_name': teamname,
'event_code': eventcode,
'goal_time' : goalTime,
'image' : _res["goalimage"].toString().replaceAll('http://localhost:8100', 'http://rogaining.sumasen.net')
}
),
);
String rec = jsonEncode(<String, String>{
'team_name': teamname,
'event_code': eventcode,
'goal_time' : goalTime,
'image' : _res["goalimage"].toString().replaceAll('http://localhost:8100', 'http://rogaining.sumasen.net')
}
);
print("-- json -- $rec");
print('----- response2 is $response2 --------');
if (response2.statusCode == 200) {
_res2 = json.decode(utf8.decode(response2.bodyBytes));
'team_name': teamname,
'cp_number': cp.toString(),
'event_code': eventcode,
'image': res["checkinimage"].toString().replaceAll(
'http://localhost:8100', 'http://rogaining.sumasen.net')
}),
);
var vv = jsonEncode(<String, String>{
'team_name': teamname,
'cp_number': cp.toString(),
'event_code': eventcode,
'image': res["checkinimage"].toString().replaceAll(
'http://localhost:8100', 'http://rogaining.sumasen.net')
});
//print("~~~~ api 2 values $vv ~~~~");
//print("--json-- $vv");
//print("--- checnin response ${response2.statusCode}----");
if (response2.statusCode == 200) {
res = json.decode(utf8.decode(response2.bodyBytes));
//print('----checkin res _res : $res ----');
if (res["status"] == "ERROR") {
Get.snackbar("エラーがおきました", res["detail"]);
}
}
} else {
Get.snackbar("エラーがおきました", "サーバーに更新できませんでした");
}
}
//}
destinationController.resetRogaining();
return _res2;
}
} else {
if (indexController.connectionStatusName.value != "wifi" ||
indexController.connectionStatusName.value != "mobile") {
DatabaseHelper db = DatabaseHelper.instance;
Rog rog = Rog(
id: 1,
team_name: teamname,
event_code: eventcode,
user_id: userId,
cp_number: cp,
checkintime: DateTime.now().toUtc().microsecondsSinceEpoch,
image: null,
rog_action_type: 1,
);
db.insertRogaining(rog);
} else {
final http.Response response3 = await http.post(
Uri.parse(url),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{
'team_name': teamname,
'cp_number': cp.toString(),
'event_code': eventcode,
'image': ""
}),
);
var vvv = jsonEncode(<String, String>{
'team_name': teamname,
'cp_number': cp.toString(),
'event_code': eventcode,
'image': res["checkinimage"].toString().replaceAll(
'http://localhost:8100', 'http://rogaining.sumasen.net')
});
// print("--json-- $vvv");
// print("--- checnin response ${response3.statusCode}----");
if (response3.statusCode == 200) {
res = json.decode(utf8.decode(response3.bodyBytes));
//print('----checkin res _res : $res ----');
}
}
}
//print("~~~~ done checkin ~~~~");
return res;
}
Future<Map<String, dynamic>> makeGoal(int userId, String token,
String teamname, String image, String goalTime, String eventcode) async {
Map<String, dynamic> res2 = {};
static Future<Map<String, dynamic>> usersEventCode(String teamcode, String password) async {
Map<String, dynamic> _res = {};
String url = "https://rogaining.sumasen.net/gifuroge/check_event_code?zekken_number=$teamcode&password=$password";
print('++++++++$url');
final http.Response response = await http.get(
Uri.parse(url),
final IndexController indexController = Get.find<IndexController>();
final DestinationController destinationController =
Get.find<DestinationController>();
//if(indexController.connectionStatusName != "wifi" && indexController.connectionStatusName != "mobile"){
DatabaseHelper db = DatabaseHelper.instance;
Rog rog = Rog(
id: 1,
team_name: teamname,
event_code: eventcode,
user_id: userId,
cp_number: -1,
checkintime: DateTime.now().toUtc().microsecondsSinceEpoch,
image: image,
rog_action_type: 1,
);
db.insertRogaining(rog);
// }
// else{
String serverUrl = ConstValues.currentServer();
String url1 = "$serverUrl/api/goalimage/";
final im1Bytes = File(image).readAsBytesSync();
String im1_64 = base64Encode(im1Bytes);
final http.Response response = await http.post(
Uri.parse(url1),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
}
'Authorization': 'Token $token'
},
// 'id', 'user', 'goalimage', 'goaltime', 'team_name', 'event_code','cp_number'
body: jsonEncode(<String, String>{
'user': userId.toString(),
'team_name': teamname,
'event_code': eventcode,
'goaltime': goalTime,
'goalimage': im1_64,
'cp_number': "-1"
}),
);
if (response.statusCode == 200) {
_res = json.decode(utf8.decode(response.bodyBytes));
String url = 'https://rogaining.sumasen.net/gifuroge/goal_from_rogapp';
//print('++++++++$url');
if (response.statusCode == 201) {
Map<String, dynamic> res = json.decode(utf8.decode(response.bodyBytes));
// print('----_res : $res ----');
// print('---- image url ${res["goalimage"]} ----');
final http.Response response2 = await http.post(
Uri.parse(url),
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(<String, String>{
'team_name': teamname,
'event_code': eventcode,
'goal_time': goalTime,
'image': res["goalimage"].toString().replaceAll(
'http://localhost:8100', 'http://rogaining.sumasen.net')
}),
);
String rec = jsonEncode(<String, String>{
'team_name': teamname,
'event_code': eventcode,
'goal_time': goalTime,
'image': res["goalimage"]
.toString()
.replaceAll('http://localhost:8100', 'http://rogaining.sumasen.net')
});
// print("-- json -- $rec");
// print('----- response2 is $response2 --------');
if (response2.statusCode == 200) {
res2 = json.decode(utf8.decode(response2.bodyBytes));
}
}
return _res;
}
//}
destinationController.resetRogaining();
return res2;
}
}
static Future<Map<String, dynamic>> usersEventCode(
String teamcode, String password) async {
Map<String, dynamic> res = {};
String url =
"https://rogaining.sumasen.net/gifuroge/check_event_code?zekken_number=$teamcode&password=$password";
//print('++++++++$url');
final http.Response response =
await http.get(Uri.parse(url), headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
});
if (response.statusCode == 200) {
res = json.decode(utf8.decode(response.bodyBytes));
}
return res;
}
}