В бд добавлена таблица настроек, данные для настроек берутся из базы
This commit is contained in:
48
lib/db.dart
48
lib/db.dart
@@ -5,12 +5,20 @@ import 'package:path/path.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
|
||||
/// Данные о таблице сессии пользователя.
|
||||
const String tableSession = "session";
|
||||
|
||||
const String columnMerchantID = "merchant_id"; // DIN code, который вводится при авторизации
|
||||
const String columnToken = "token"; // Токен для pos. Приходит с бэкэнда.
|
||||
const String columnPosID = "pos_id"; // идентификатор для создания токена на бэке.
|
||||
const String columnDocID = "doc_id"; // идентификатор, для проведения покупки на бэкенде.
|
||||
|
||||
/// Данные о таблице данных приложения.
|
||||
const String tableSettings = "settings";
|
||||
|
||||
const String columnCurrency = "currency"; // валюта.
|
||||
const String columnLocale = "locale"; // локаль.
|
||||
|
||||
//{
|
||||
// columnMerchantID: merchantID,
|
||||
// columnToken: token,
|
||||
@@ -28,15 +36,22 @@ class SqliteHelper {
|
||||
String path = join(documentsDirectory.path, "demo.db");
|
||||
db = await openDatabase(path, version: 1,
|
||||
onCreate: (Database db, int version) async {
|
||||
await db.execute('''create table session (
|
||||
|
||||
await db.execute('''create table $tableSession (
|
||||
$columnMerchantID text primary key,
|
||||
$columnToken text,
|
||||
$columnPosID text,
|
||||
$columnDocID integer)''');
|
||||
|
||||
await db.execute('''create table $tableSettings (
|
||||
$columnCurrency integer,
|
||||
$columnLocale text)''');
|
||||
});
|
||||
}
|
||||
|
||||
Future insert(String merchantID, String posID, String token) async {
|
||||
/// Создается запись в таблице, содержащая
|
||||
/// необходимые для идентификации пользователя и проведения запросов.
|
||||
Future createSession(String merchantID, String posID, String token) async {
|
||||
|
||||
Map session = {
|
||||
columnMerchantID: merchantID,
|
||||
@@ -48,36 +63,53 @@ class SqliteHelper {
|
||||
return db.insert(tableSession, session);
|
||||
}
|
||||
|
||||
/// Создается запись в таблице, содержащая данные, которые не зависят от сессии.
|
||||
Future createAppInfo(String locale, int currency) async {
|
||||
List<Map> appInfo = await db.query(tableSettings);
|
||||
if (appInfo.length > 0) {
|
||||
return null;
|
||||
} else {
|
||||
return db.insert(tableSettings, {
|
||||
columnLocale: locale,
|
||||
columnCurrency: currency
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Future<Map> getSettings() async {
|
||||
return await selectAll(tableSettings);
|
||||
}
|
||||
|
||||
Future<String> getToken() async {
|
||||
Map session = await _getSession();
|
||||
Map session = await selectAll(tableSession);
|
||||
String token = session != null ? session[columnToken] : null;
|
||||
print('token: {$token}');
|
||||
return token;
|
||||
}
|
||||
|
||||
Future<String> getMerchantID() async {
|
||||
Map session = await _getSession();
|
||||
Map session = await selectAll(tableSession);
|
||||
String merchantID = session != null ? session[columnMerchantID] : null;
|
||||
print('token: {$merchantID}');
|
||||
return merchantID;
|
||||
}
|
||||
|
||||
Future<String> getPosID() async {
|
||||
Map session = await _getSession();
|
||||
Map session = await selectAll(tableSession);
|
||||
return session != null ? session[columnPosID] : new DateTime.now().millisecondsSinceEpoch.toString();
|
||||
}
|
||||
|
||||
Future<int> getDocID() async {
|
||||
Map session = await _getSession();
|
||||
Map session = await selectAll(tableSession);
|
||||
int docID = session != null ? session[columnDocID] : 0;
|
||||
db.update(tableSession, {columnDocID: docID + 1});
|
||||
print('docid: {$docID}');
|
||||
return docID;
|
||||
}
|
||||
|
||||
Future<Map> _getSession() async {
|
||||
Future<Map> selectAll(String table) async {
|
||||
|
||||
List<Map> maps = await db.query(tableSession, columns: null);
|
||||
List<Map> maps = await db.query(table, columns: null);
|
||||
|
||||
if (maps.length > 0) {
|
||||
return maps.first;
|
||||
|
||||
Reference in New Issue
Block a user