Todo editing

This commit is contained in:
Sewmina
2022-04-05 06:52:58 +05:30
parent b7ce14a558
commit 7aa8712c16
7 changed files with 95 additions and 20 deletions

View File

@@ -1595,6 +1595,53 @@ class UserOperations {
await executeQueries();
}
static Future<void> editTodo(String oldId, String taskType, String metadata, DateTime dueDate, DateTime? notificationTime) async {
String taskId = username + taskType;
if(taskId.contains('[') && taskId.contains(']')){
//has a project related
taskId = taskId.substring(0, taskId.indexOf('[') - 1);
}
String id = taskId + metadata;
Map<String, String> queryBody = <String, String>{
'old_id' : oldId,
'username': username,
'task': taskId,
'metadata': metadata,
'due_date': DateFormat('yyyy-MM-dd').format(dueDate),
if(notificationTime!=null)'notification_time':DateFormat('yyyy-MM-dd HH:mm').format(notificationTime)
};
if (cacheEnabled) {
//Add Query
Map<String, Object> query = {Queries.colLink: 'edit_todo', Queries.colData: jsonEncode(queryBody)};
Debug.LogResponse("adding new query ${query[Queries.colLink]} : ${jsonEncode(queryBody)}");
await cacheDb.insert('Queries', query);
String dueDateString = DateFormat('yyyy-MM-dd').format(dueDate);
//update Cache
// Map<String, Object> data = {'id': id, Todo.colCat: taskId, Todo.colMetadata: metadata, Todo.colDueDate: DateFormat('yyyy-MM-dd').format(dueDate), if(notificationTime!=null)Todo.colNotificationTime:DateFormat('yyyy-MM-dd HH:mm').format(notificationTime)};
// await cacheDb.insert('Todos', data);
await cacheDb.rawUpdate("UPDATE Todos SET id='$id', ${Todo.colCat}='$taskId', ${Todo.colMetadata}='$metadata', ${Todo.colDueDate}='$dueDateString'${(notificationTime!=null) ? ", ${Todo.colNotificationTime}='${DateFormat('yyyy-MM-dd HH:mm').format(notificationTime)}'" : ''} WHERE id='$oldId'");
await refreshUserData(forceOffline: true);
} else {
try {
http.Response queryResponse = (await http.post(Uri.parse('http://161.97.127.136/task_tracker/edit_todo.php'), body: queryBody));
Debug.LogResponse("Query executed : Results{${queryResponse.body}");
if (queryResponse.body.toLowerCase().contains("success")) {
//Success
}
} catch (e) {
Debug.LogError('NC: Error editing todo entry $e}');
}
//executeQueries();
}
//Add to server and refresh Cache
await executeQueries();
}
static Future<void> deleteTask(String name, {bulk = false}) async {
Map<String, String> queryBody = <String, String>{