From 4263997c3e419ef1cf7447d447c5582a322acf74 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Fri, 20 Jul 2018 18:14:18 +0200 Subject: Began basic login screen feature (mvp architecture) --- lib/data/database_helper.dart | 54 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 lib/data/database_helper.dart (limited to 'lib/data/database_helper.dart') diff --git a/lib/data/database_helper.dart b/lib/data/database_helper.dart new file mode 100644 index 0000000..da65dcc --- /dev/null +++ b/lib/data/database_helper.dart @@ -0,0 +1,54 @@ +import 'dart:async'; +import 'dart:io' as io; + +import 'package:path/path.dart'; +import 'package:beam_messenger/models/user.dart'; +import 'package:sqflite/sqflite.dart'; +import 'package:path_provider/path_provider.dart'; + +class DatabaseHelper { + static final DatabaseHelper _instance = new DatabaseHelper.internal(); + factory DatabaseHelper() => _instance; + + static Database _db; + + Future get db async { + if (_db != null) return _db; + _db = await initDb(); + return _db; + } + + DatabaseHelper.internal(); + + initDb() async { + io.Directory documentsDirectory = await getApplicationDocumentsDirectory(); + String path = join(documentsDirectory.path, "main.db"); + var theDb = await openDatabase(path, version: 1, onCreate: _onCreate); + return theDb; + } + + void _onCreate(Database db, int version) async { + // When creating the db, create the table + await db.execute( + "CREATE TABLE User(id INTEGER PRIMARY KEY, email TEXT, password TEXT)"); + print("Created tables"); + } + + Future saveUser(User user) async { + var dbClient = await db; + int res = await dbClient.insert("User", user.toMap()); + return res; + } + + Future deleteUsers() async { + var dbClient = await db; + int res = await dbClient.delete("User"); + return res; + } + + Future isLoggedIn() async { + var dbClient = await db; + var res = await dbClient.query("User"); + return res.length > 0 ? true : false; + } +} -- cgit v1.2.3