Skip to content

feat: add task batches (batchId) and a generic vendor task form#383

Merged
andrii-bodnar merged 3 commits into
crowdin:masterfrom
GabrielBBaldez:feat/tasks-batch-id
Jun 9, 2026
Merged

feat: add task batches (batchId) and a generic vendor task form#383
andrii-bodnar merged 3 commits into
crowdin:masterfrom
GabrielBBaldez:feat/tasks-batch-id

Conversation

@GabrielBBaldez

@GabrielBBaldez GabrielBBaldez commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Implements #373: task batches (batchId) and a generic vendor task create form.

Part 1 — task batches (batchId) — Crowdin & Enterprise

  • List Tasks: ListTasksParams gains a batchId query parameter.
  • Add Task: AddTaskRequest (the base create form) gains a batchId field, so all task create forms can group tasks into a batch.
  • Edit Task: batchId/resetScope are editable via the existing PatchRequest-based editTask (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)

vendor is a free-form identifier; skipAssignedStrings and deadline are 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

  • Added listTasksByBatchIdTest (batchId query param), set batchId in addTaskTest, and added addTaskVendorTest for the new generic form.
  • ./gradlew test passes.

Closes #373

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
@andrii-bodnar

Copy link
Copy Markdown
Member

@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.
@GabrielBBaldez GabrielBBaldez changed the title feat!: add task batches (batchId) and consolidate vendor task forms feat: add task batches (batchId) and a generic vendor task form Jun 9, 2026
@GabrielBBaldez

Copy link
Copy Markdown
Contributor Author

Thanks @andrii-bodnar! Good call — I kept the per-vendor forms and marked them @Deprecated instead of removing them, so the change is non-breaking now. The new generic CreateTaskVendorRequest (plus strings-based and pending variants) is added alongside them. Updated the PR title/description accordingly.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 batchId to 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 andrii-bodnar left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@GabrielBBaldez thank you!

@andrii-bodnar andrii-bodnar merged commit 360064d into crowdin:master Jun 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for task batches (batchId) and the consolidated vendor task form

3 participants