Упрощена работа с локалью, базовый url и токен приложения вынесены в build.gradle, добавлен конфиг для разработки и тестирования, исправлена проблема с переходом на экран сканера если локаль не выбиралась в настройках

This commit is contained in:
kifio
2017-09-23 23:19:32 +03:00
parent 808d5a39e5
commit 40fed84275
15 changed files with 277 additions and 255 deletions

View File

@@ -1,6 +1,8 @@
import 'package:checker/db.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
import 'consts.dart';
import 'common.dart';
// Клиент http приложения
final httpClient = createHttpClient();
@@ -8,23 +10,58 @@ final httpClient = createHttpClient();
// Попытка создать токен для кассы.
// В случае если токен для кассы уже существует, вернется ошибка 409.
// На сервере есть ограничение в 40 токенов.
createToken(String merchantId, String posID, String locale) async {
// Поле description - необязательное.
var body = {
'merchant_shop': merchantId,
'pos': posID,
};
return httpClient.post(url + 'tokens/?_dmapptoken=' + appToken, body: body, headers: {'Accept-Language': locale});
getCreateTokenRequest(Map httpBody) async {
return httpClient.post(
await getEndpoint() + 'tokens/?_dmapptoken=' + await getToken(),
body: httpBody,
headers: {'Accept-Language': Intl.defaultLocale});
}
// Проверка статуса токена. В ответе приходит параметр active, который может быть либо true, либо false,.
checkTokenStatus(String token, String locale) async {
return httpClient.get(url + 'tokens/' + token + '?_dmapptoken=' + appToken, headers: {'Accept-Language': locale});
getCheckTokenStatusRequest(String token) async {
return httpClient.get(
await getEndpoint() +
'tokens/' +
token +
'?_dmapptoken=' +
await getToken(),
headers: {'Accept-Language': Intl.defaultLocale});
}
// Удаление токена на сервере.
deleteToken(String token, String locale) async {
return httpClient.delete(url + 'tokens/' + token + '?_dmapptoken=' + appToken, headers: {'Accept-Language': locale});
}
getDeleteTokenRequest(String token) async {
return httpClient.delete(
await getEndpoint() + 'tokens/' + token + '?_dmapptoken=' +
await getToken(), headers: {'Accept-Language': Intl.defaultLocale});
}
getLoyaltyRequest(String endpoint, SqliteHelper helper) async {
String token = await helper.getToken();
var headers = {
'DM-Authorization': 'dmapptoken ${await getToken()}',
'Authorization': 'dmtoken ${token}',
'Accept-Language': Intl.defaultLocale
};
return httpClient.get(endpoint, headers: headers);
}
getPurchaseRequest(String endpoint, Map body, String token) async {
var headers = {
'DM-Authorization': 'dmapptoken ${await getToken()}',
'Authorization': 'dmtoken ${token}',
'Accept-Language': Intl.defaultLocale
};
return httpClient.post(endpoint, body: body, headers: headers);
}
getEndpoint() async {
return await platform.invokeMethod('getEndpoint');
}
getToken() async {
return await platform.invokeMethod('getAppToken');
}