diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt index a2fb08c5b..774a0344b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/api/ApiService.kt @@ -138,6 +138,8 @@ interface ApiService { @POST("tasks/user") suspend fun createTask(@Body item: Task): HabitResponse + @POST("tasks/group/{groupId}") + suspend fun createGroupTask(@Path("groupId") groupId: String, @Body item: Task): HabitResponse @POST("tasks/user") suspend fun createTasks(@Body tasks: List): HabitResponse> diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt index 0d6e62742..3b1c7e948 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/ApiClient.kt @@ -97,6 +97,7 @@ interface ApiClient { suspend fun scoreChecklistItem(taskId: String, itemId: String): Task? suspend fun createTask(item: Task): Task? + suspend fun createGroupTask(groupId: String, item: Task): Task? suspend fun createTasks(tasks: List): List? diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt index 8f317f21c..3bce8ab70 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt @@ -447,6 +447,10 @@ class ApiClientImpl( return process { apiService.createTask(item) } } + override suspend fun createGroupTask(groupId: String, item: Task): Task? { + return process { apiService.createGroupTask(groupId, item) } + } + override suspend fun createTasks(tasks: List): List? { return process { apiService.createTasks(tasks) } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt index 697d232f1..a1f5985c3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/TaskRepositoryImpl.kt @@ -223,7 +223,11 @@ class TaskRepositoryImpl( } localRepository.save(task) - val savedTask = apiClient.createTask(task) + val savedTask = if (task.isGroupTask) { + apiClient.createGroupTask(task.group?.groupID ?: "", task) + } else { + apiClient.createTask(task) + } savedTask?.dateCreated = Date() if (savedTask != null) { savedTask.tags = task.tags