query static method
Future<List<Map<String, dynamic> > >
query(
- String tableName, {
- required DatabaseQuery databaseQuery,
Implementation
static Future<List<Map<String, dynamic>>> query(String tableName, {required DatabaseQuery databaseQuery}) async {
List<Map<String, dynamic>> result = [];
final qry = databaseQuery.get ?? databaseQuery.update ?? databaseQuery.delete ?? databaseQuery.insert;
final select = qry?.select.toString().replaceAll('[', '').replaceAll(']', '').replaceAll('{NO_SELECTED_TABLE_NAME}', tableName);
String closeParameter = '';
final groupBy = qry?.groupBy.toString().replaceAll('[', '').replaceAll(']', '');
if (groupBy != 'null') {
closeParameter += ' GROUP BY $groupBy';
}
if (qry?.orderBy != null) {
// if (closeParameter != '') {
// closeParameter += ', ';
// }
closeParameter += ' ORDER BY ' + OrderBy.queryBuilder(qry!.orderBy!) + ' ';
}
if (databaseQuery.get != null) {
if (qry?.limit != null) {
closeParameter += ' LIMIT ${qry?.limit}';
}
result = await DatabaseConfig.get(query: 'SELECT ${select == 'null' ? '*' : select} FROM $tableName ' + (databaseQuery.get!.joinQuery).replaceAll('{NO_SELECTED_TABLE_NAME}', tableName) + Transaction.query(databaseQuery.get!) + closeParameter);
} else if (databaseQuery.delete != null) {
final res = await DatabaseConfig.delete(query: 'DELETE FROM $tableName ' + (databaseQuery.delete!.joinQuery).replaceAll('{NO_SELECTED_TABLE_NAME}', tableName) + Transaction.query(databaseQuery.delete!) + closeParameter);
if (res) {
result.add({'status': 'success', 'message': 'data has been deleted'});
}
} else if (databaseQuery.insert != null) {
final res = await DatabaseConfig.insert(data: databaseQuery.insert?.listData ?? databaseQuery.insert?.data, tableName: tableName);
if (res) {
result.add({'status': 'success', 'message': 'data has been added'});
}
} else if (databaseQuery.update != null) {
final res = await DatabaseConfig.update(data: databaseQuery.update?.data ?? databaseQuery.insert?.listData, where: Transaction.query(databaseQuery.update!).replaceAll('WHERE', ""), tableName: tableName);
if (res) {
result.add({'status': 'success', 'message': 'data has been updated'});
}
}
return result;
}