add signin function
This commit is contained in:
@@ -1,147 +0,0 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:device_info/device_info.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:fcs/vo/status.dart';
|
||||
|
||||
import '../config.dart';
|
||||
|
||||
final log = Logger('requestAPI');
|
||||
|
||||
// request makes http request
|
||||
// if token is null
|
||||
Future<dynamic> requestAPI(
|
||||
String path,
|
||||
method, {
|
||||
dynamic payload,
|
||||
String token,
|
||||
String url,
|
||||
}) async {
|
||||
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
|
||||
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
|
||||
String deviceName = "${androidInfo.model}(${androidInfo.id})";
|
||||
log.info("device:${androidInfo.androidId},deviceName:$deviceName");
|
||||
|
||||
Map<String, dynamic> headers = {};
|
||||
if (token != null) {
|
||||
headers["Token"] = token;
|
||||
}
|
||||
if (androidInfo.androidId != null) {
|
||||
headers["Device"] = androidInfo.androidId + ":" + deviceName;
|
||||
}
|
||||
headers["Project-ID"] = Config.instance.reportProjectID;
|
||||
|
||||
BaseOptions options = new BaseOptions(
|
||||
method: method,
|
||||
baseUrl: url == null ? Config.instance.apiURL : url,
|
||||
connectTimeout: 10000,
|
||||
receiveTimeout: 10000,
|
||||
headers: headers,
|
||||
);
|
||||
log.info("baseUrl:${options.baseUrl}, path:$path");
|
||||
try {
|
||||
Dio dio = new Dio(options);
|
||||
Response response = await dio.request(
|
||||
path,
|
||||
data: payload,
|
||||
);
|
||||
var data = Status.fromJson(response.data);
|
||||
if (data.status == 'Ok') {
|
||||
return response.data["data"];
|
||||
} else {
|
||||
throw Exception(data.message);
|
||||
}
|
||||
} catch (e) {
|
||||
log.warning("path:$path, api:$e");
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
// request makes http request
|
||||
// if token is null
|
||||
Future<dynamic> requestDownloadAPI(String path, method,
|
||||
{dynamic payload, String token, String url, String filePath}) async {
|
||||
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
|
||||
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
|
||||
String deviceName = "${androidInfo.model}(${androidInfo.id})";
|
||||
log.info("device:${androidInfo.androidId},deviceName:$deviceName");
|
||||
|
||||
var bytes = utf8.encode(payload);
|
||||
var base64Str = base64.encode(bytes);
|
||||
String escapePayload = HtmlEscape().convert(base64Str);
|
||||
|
||||
try {
|
||||
String baseUrl = url == null ? Config.instance.apiURL : url;
|
||||
log.info("Path:$baseUrl$path");
|
||||
HttpClient client = new HttpClient();
|
||||
var _downloadData = StringBuffer();
|
||||
var fileSave = new File(filePath);
|
||||
var request = await client.getUrl(Uri.parse("$baseUrl$path"));
|
||||
request.headers.set("Project-ID", Config.instance.reportProjectID);
|
||||
request.headers
|
||||
.set(HttpHeaders.contentTypeHeader, "application/json; charset=UTF-8");
|
||||
if (token != null) {
|
||||
request.headers.set("Token", token);
|
||||
}
|
||||
if (androidInfo.androidId != null) {
|
||||
request.headers.set("Device", androidInfo.androidId + ":" + deviceName);
|
||||
}
|
||||
request.headers.set("payload", escapePayload);
|
||||
var response = await request.close();
|
||||
print("headers:${response.headers}");
|
||||
response.transform(utf8.decoder).listen((d) => _downloadData.write(d),
|
||||
onDone: () {
|
||||
fileSave.writeAsString(_downloadData.toString());
|
||||
});
|
||||
} catch (e) {
|
||||
log.warning("path:$path, api:$e");
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
// request makes http request
|
||||
// if token is null
|
||||
Future<dynamic> requestDownloadPDFAPI(String path, method,
|
||||
{dynamic payload, String token, String url, String filePath}) async {
|
||||
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
|
||||
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
|
||||
String deviceName = "${androidInfo.model}(${androidInfo.id})";
|
||||
log.info("device:${androidInfo.androidId},deviceName:$deviceName");
|
||||
|
||||
var bytes = utf8.encode(payload);
|
||||
var base64Str = base64.encode(bytes);
|
||||
String escapePayload = HtmlEscape().convert(base64Str);
|
||||
|
||||
try {
|
||||
String baseUrl = url == null ? Config.instance.apiURL : url;
|
||||
log.info("Path:$baseUrl$path");
|
||||
HttpClient client = new HttpClient();
|
||||
// var _downloadData = StringBuffer();
|
||||
var fileSave = new File(filePath);
|
||||
var request = await client.getUrl(Uri.parse("$baseUrl$path"));
|
||||
request.headers.set("Project-ID", Config.instance.reportProjectID);
|
||||
if (token != null) {
|
||||
request.headers.set("Token", token);
|
||||
}
|
||||
if (androidInfo.androidId != null) {
|
||||
request.headers.set("Device", androidInfo.androidId + ":" + deviceName);
|
||||
}
|
||||
request.headers.set("payload", escapePayload);
|
||||
var response = await request.close();
|
||||
print("headers:${response.headers}");
|
||||
var _downloadData = List<int>();
|
||||
|
||||
response.listen((d) => _downloadData.addAll(d), onDone: () {
|
||||
fileSave.writeAsBytes(_downloadData);
|
||||
});
|
||||
// response.transform(utf8.decoder).listen((d) => _downloadData.write(d),
|
||||
// onDone: () {
|
||||
// fileSave.writeAsString(_downloadData.toString());
|
||||
// });
|
||||
} catch (e) {
|
||||
log.warning("path:$path, api:$e");
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:fcs/model/api_helper.dart';
|
||||
import 'package:fcs/fcs/common/api_helper.dart';
|
||||
|
||||
import '../vo/setting.dart';
|
||||
import '../vo/user.dart';
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'dart:convert' show HtmlEscape, base64, utf8;
|
||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:fcs/config.dart';
|
||||
import 'package:fcs/theme/theme.dart';
|
||||
import 'package:fcs/fcs/common/theme.dart';
|
||||
import 'package:fcs/vo/buyer.dart';
|
||||
import 'package:fcs/vo/popup_menu.dart';
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'dart:typed_data';
|
||||
|
||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||
import 'package:path/path.dart' as Path;
|
||||
import 'package:fcs/model/api_helper.dart';
|
||||
import 'package:fcs/fcs/common/api_helper.dart';
|
||||
import 'package:fcs/model/constants.dart';
|
||||
import 'package:fcs/pages/do/do_files.dart';
|
||||
import 'package:fcs/vo/do.dart';
|
||||
@@ -27,7 +27,6 @@ class DOModel extends BaseModel {
|
||||
_loadDOs();
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
logout() async {
|
||||
if (listener != null) await listener.cancel();
|
||||
@@ -247,7 +246,8 @@ class DOModel extends BaseModel {
|
||||
.where("status", isEqualTo: do_approved_status)
|
||||
.where("delivery_date", isGreaterThanOrEqualTo: date)
|
||||
.where("delivery_date", isLessThan: dateAddOne)
|
||||
.orderBy("delivery_date").orderBy("user_name")
|
||||
.orderBy("delivery_date")
|
||||
.orderBy("user_name")
|
||||
.limit(100)
|
||||
.getDocuments();
|
||||
snapshots.documents.forEach((d) {
|
||||
|
||||
@@ -22,7 +22,7 @@ import 'package:fcs/widget/NetworkConnectivity.dart';
|
||||
import '../config.dart';
|
||||
import '../vo/status.dart';
|
||||
import '../vo/user.dart';
|
||||
import 'api_helper.dart';
|
||||
import '../fcs/common/api_helper.dart';
|
||||
import 'base_model.dart';
|
||||
import 'constants.dart';
|
||||
import 'firebase_helper.dart';
|
||||
@@ -97,10 +97,10 @@ class MainModel extends ChangeNotifier {
|
||||
phone: '+959123456789',
|
||||
mail: 'kbz@gmail.com'),
|
||||
PaymentMethod(
|
||||
name: 'PayPal',
|
||||
accountName: 'FCS',
|
||||
link: 'https://www.paypal.com/donate/buttons',
|
||||
),
|
||||
name: 'PayPal',
|
||||
accountName: 'FCS',
|
||||
link: 'https://www.paypal.com/donate/buttons',
|
||||
),
|
||||
];
|
||||
return methods;
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:fcs/vo/report.dart';
|
||||
import 'package:fcs/vo/report_user.dart';
|
||||
import 'package:open_file/open_file.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:fcs/model/api_helper.dart' as api;
|
||||
import 'package:fcs/fcs/common/api_helper.dart' as api;
|
||||
import 'package:fcs/vo/report.dart';
|
||||
|
||||
import '../config.dart';
|
||||
|
||||
Reference in New Issue
Block a user