TIF_E41210280/lib/services/helper/database_helper.dart

53 lines
1.3 KiB
Dart

import 'package:skripsi_getit/data/model/user.dart';
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
class DatabaseHelper {
static final DatabaseHelper instance = DatabaseHelper._internal();
DatabaseHelper._internal();
static Database? _database;
Future<Database> get database async {
if (_database != null) return _database!;
_database = await _initDB();
return _database!;
}
Future<Database> _initDB() async {
String path = join(await getDatabasesPath(), 'app_database.db');
return await openDatabase(
path,
version: 1,
onCreate: (db, version) {
return db.execute(
'CREATE TABLE users(id INTEGER PRIMARY KEY, username TEXT, email TEXT, password TEXT)',
);
},
);
}
Future<void> insertUser(User user) async {
final db = await database;
await db.insert(
'users',
user.toMap(),
conflictAlgorithm: ConflictAlgorithm.replace,
);
}
Future<User?> getUser(String email, String password) async {
final db = await database;
final maps = await db.query(
'users',
where: 'email = ? AND password = ?',
whereArgs: [email, password],
);
if (maps.isNotEmpty) {
return User.fromMap(maps.first);
}
return null;
}
}