feat: add task batches (batchId) and a generic vendor task form#383
Conversation
Add the optional batchId to task listing and creation: ListTasksParams gains a batchId query parameter (listTasks), and AddTaskRequest gains a batchId field so all task create forms can group tasks into a batch. batchId/resetScope on Edit Task are already supported via PatchRequest. Covers the batchId part of crowdin#373; the Crowdin-only vendor task form consolidation is a separate breaking change. Refs crowdin#373
Remove the per-vendor Crowdin task create forms (OHT, Gengo, Manual, LanguageService, and the manual pending form) and replace them with generic vendor forms (CreateTaskVendorRequest, CreateTaskVendorStringsBasedRequest, CreatePendingVendorTaskRequest), where vendor is a free-form identifier. Adds skipAssignedStrings/deadline and drops vendor-specific fields (expertise, editService). BREAKING CHANGE: the per-vendor CreateTaskVendor*/CreateLanguageServiceTask* request classes are removed; use the generic vendor forms instead. Refs crowdin#373
|
@GabrielBBaldez thanks for your contribution! I've been thinking about the outdated request models, and I'm not sure if we want to remove them completely. Would it be possible to just mark them as deprecated at this point? |
Per review feedback on crowdin#383, keep the per-vendor task create forms (OHT, Gengo, Manual, LanguageService, manual pending) and mark them @deprecated, alongside the new generic CreateTaskVendorRequest / CreateTaskVendorStringsBasedRequest / CreatePendingVendorTaskRequest. This makes the change non-breaking.
|
Thanks @andrii-bodnar! Good call — I kept the per-vendor forms and marked them |
There was a problem hiding this comment.
Pull request overview
Adds support for task batching (batchId) and introduces consolidated “generic vendor” task create request models, aligning the client with the updated Tasks API while keeping legacy per-vendor request types available (now deprecated).
Changes:
- Add
batchIdto task listing query params (ListTasksParams) and to the base task create request (AddTaskRequest) so it can be used across create forms. - Add new generic vendor task create forms (files-based, strings-based, and pending) and add a test fixture + API test coverage for the new vendor form.
- Mark legacy per-vendor task request models as
@Deprecated(kept for backward compatibility in the client API surface).
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/main/java/com/crowdin/client/tasks/TasksApi.java | Adds batchId to the query params for listTasks(projectId, ListTasksParams) calls. |
| src/main/java/com/crowdin/client/tasks/model/ListTasksParams.java | Adds batchId as a new list-tasks filter parameter. |
| src/main/java/com/crowdin/client/tasks/model/AddTaskRequest.java | Adds batchId to the base create request so all task-create request types can opt into batching. |
| src/main/java/com/crowdin/client/tasks/model/CreateTaskVendorRequest.java | Introduces the new consolidated files-based vendor task create request model. |
| src/main/java/com/crowdin/client/tasks/model/CreateTaskVendorStringsBasedRequest.java | Introduces the new consolidated strings-based vendor task create request model. |
| src/main/java/com/crowdin/client/tasks/model/pending/CreatePendingVendorTaskRequest.java | Introduces the new consolidated pending vendor task create request model. |
| src/main/java/com/crowdin/client/tasks/model/pending/CreatePendingVendorManualTaskRequest.java | Deprecates the legacy manual pending vendor request model. |
| src/main/java/com/crowdin/client/tasks/model/CreateTaskVendorOhtRequest.java | Deprecates legacy OHT vendor request model. |
| src/main/java/com/crowdin/client/tasks/model/CreateTaskVendorOhtStringsBasedRequest.java | Deprecates legacy OHT strings-based vendor request model. |
| src/main/java/com/crowdin/client/tasks/model/CreateTaskVendorGengoRequest.java | Deprecates legacy Gengo vendor request model. |
| src/main/java/com/crowdin/client/tasks/model/CreateTaskVendorGengoStringsBasedRequest.java | Deprecates legacy Gengo strings-based vendor request model. |
| src/main/java/com/crowdin/client/tasks/model/CreateTaskVendorManualRequest.java | Deprecates legacy manual vendor request model. |
| src/main/java/com/crowdin/client/tasks/model/CreateTaskVendorManualStringsBasedRequest.java | Deprecates legacy manual strings-based vendor request model. |
| src/main/java/com/crowdin/client/tasks/model/CreateLanguageServiceTaskRequest.java | Deprecates legacy language-service vendor request model. |
| src/main/java/com/crowdin/client/tasks/model/CreateLanguageServiceTaskStringsBasedRequest.java | Deprecates legacy language-service strings-based vendor request model. |
| src/test/java/com/crowdin/client/tasks/TasksApiTest.java | Adds tests for listing by batchId, setting batchId on add-task, and posting the new generic vendor create form. |
| src/test/resources/api/tasks/CrowdinTaskCreateFormRequest.json | Updates the add-task fixture to include batchId. |
| src/test/resources/api/tasks/vendorTaskRequest.json | Adds a new request fixture for the consolidated vendor task create form. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
andrii-bodnar
left a comment
There was a problem hiding this comment.
@GabrielBBaldez thank you!
Implements #373: task batches (
batchId) and a generic vendor task create form.Part 1 — task batches (
batchId) — Crowdin & EnterpriseListTasksParamsgains abatchIdquery parameter.AddTaskRequest(the base create form) gains abatchIdfield, so all task create forms can group tasks into a batch.batchId/resetScopeare editable via the existingPatchRequest-basededitTask(no model change needed).Part 2 — generic vendor task form
Adds a single generic vendor create form alongside the existing per-vendor ones:
CreateTaskVendorRequest(files-based)CreateTaskVendorStringsBasedRequest(strings-based)CreatePendingVendorTaskRequest(pending)vendoris a free-form identifier;skipAssignedStringsanddeadlineare included.The legacy per-vendor forms (OHT, Gengo, Manual, LanguageService, manual pending) are kept and marked
@Deprecated(per review feedback) rather than removed — so this change is non-breaking.Tests
listTasksByBatchIdTest(batchId query param), setbatchIdinaddTaskTest, and addedaddTaskVendorTestfor the new generic form../gradlew testpasses.Closes #373