@newpeak/barista-cli 0.1.10 ā 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/package.json +7 -3
- package/docs/ARCHITECTURE.md +0 -184
- package/docs/COMMANDS.md +0 -352
- package/docs/COMMAND_DESIGN_SPEC.md +0 -840
- package/docs/INTEGRATION_NOTES.md +0 -270
- package/docs/commands/REFERENCE.md +0 -323
- package/docs/commands/arabica/auth/index.md +0 -296
- package/docs/commands/liberica/auth/index.md +0 -133
- package/docs/commands/liberica/calendar/DESIGN.md +0 -333
- package/docs/commands/liberica/client-contacts/create.md +0 -152
- package/docs/commands/liberica/client-contacts/delete.md +0 -123
- package/docs/commands/liberica/client-contacts/get.md +0 -133
- package/docs/commands/liberica/client-contacts/list.md +0 -143
- package/docs/commands/liberica/client-contacts/update.md +0 -158
- package/docs/commands/liberica/context/index.md +0 -60
- package/docs/commands/liberica/currency/create.md +0 -145
- package/docs/commands/liberica/currency/delete.md +0 -121
- package/docs/commands/liberica/currency/disable.md +0 -119
- package/docs/commands/liberica/currency/enable.md +0 -115
- package/docs/commands/liberica/currency/get.md +0 -118
- package/docs/commands/liberica/currency/list.md +0 -149
- package/docs/commands/liberica/currency/update.md +0 -141
- package/docs/commands/liberica/employees/create.md +0 -185
- package/docs/commands/liberica/employees/disable.md +0 -138
- package/docs/commands/liberica/employees/enable.md +0 -137
- package/docs/commands/liberica/employees/get.md +0 -153
- package/docs/commands/liberica/employees/list.md +0 -168
- package/docs/commands/liberica/employees/update.md +0 -180
- package/docs/commands/liberica/locations/create.md +0 -195
- package/docs/commands/liberica/locations/list.md +0 -171
- package/docs/commands/liberica/materials/create.md +0 -293
- package/docs/commands/liberica/materials/delete.md +0 -240
- package/docs/commands/liberica/materials/disable.md +0 -150
- package/docs/commands/liberica/materials/enable.md +0 -146
- package/docs/commands/liberica/materials/get.md +0 -188
- package/docs/commands/liberica/materials/list.md +0 -198
- package/docs/commands/liberica/materials/update.md +0 -250
- package/docs/commands/liberica/orgs/list.md +0 -62
- package/docs/commands/liberica/positions/list.md +0 -61
- package/docs/commands/liberica/roles/list.md +0 -67
- package/docs/commands/liberica/stock/ledger.md +0 -209
- package/docs/commands/liberica/stock/list.md +0 -165
- package/docs/commands/liberica/supplier-contacts/create.md +0 -152
- package/docs/commands/liberica/supplier-contacts/delete.md +0 -123
- package/docs/commands/liberica/supplier-contacts/get.md +0 -133
- package/docs/commands/liberica/supplier-contacts/list.md +0 -143
- package/docs/commands/liberica/supplier-contacts/update.md +0 -158
- package/docs/commands/liberica/teams/issues/close.md +0 -161
- package/docs/commands/liberica/teams/issues/create.md +0 -212
- package/docs/commands/liberica/teams/issues/delete.md +0 -179
- package/docs/commands/liberica/teams/issues/get.md +0 -167
- package/docs/commands/liberica/teams/issues/list.md +0 -182
- package/docs/commands/liberica/teams/issues/tests-design.md +0 -341
- package/docs/commands/liberica/teams/issues/update.md +0 -202
- package/docs/commands/liberica/teams/projects/create.md +0 -174
- package/docs/commands/liberica/teams/projects/delete.md +0 -180
- package/docs/commands/liberica/teams/projects/get.md +0 -150
- package/docs/commands/liberica/teams/projects/list.md +0 -179
- package/docs/commands/liberica/teams/projects/update.md +0 -175
- package/docs/commands/liberica/teams/tasks/create.md +0 -163
- package/docs/commands/liberica/teams/tasks/delete.md +0 -109
- package/docs/commands/liberica/teams/tasks/get.md +0 -121
- package/docs/commands/liberica/teams/tasks/list.md +0 -148
- package/docs/commands/liberica/teams/tasks/update.md +0 -158
- package/docs/commands/liberica/teams/work-logs/create.md +0 -151
- package/docs/commands/liberica/teams/work-logs/delete.md +0 -130
- package/docs/commands/liberica/teams/work-logs/get.md +0 -131
- package/docs/commands/liberica/teams/work-logs/list.md +0 -153
- package/docs/commands/liberica/teams/work-logs/update.md +0 -150
- package/docs/commands/liberica/transfer-in-forms/batch-delete.md +0 -157
- package/docs/commands/liberica/transfer-in-forms/batch-review.md +0 -157
- package/docs/commands/liberica/transfer-in-forms/batch-unreview.md +0 -157
- package/docs/commands/liberica/transfer-in-forms/create.md +0 -220
- package/docs/commands/liberica/transfer-in-forms/get.md +0 -221
- package/docs/commands/liberica/transfer-in-forms/list.md +0 -242
- package/docs/commands/liberica/transfer-in-forms/update.md +0 -185
- package/docs/commands/liberica/transfer-out-forms/batch-delete.md +0 -187
- package/docs/commands/liberica/transfer-out-forms/batch-review.md +0 -157
- package/docs/commands/liberica/transfer-out-forms/batch-unreview.md +0 -157
- package/docs/commands/liberica/transfer-out-forms/create.md +0 -280
- package/docs/commands/liberica/transfer-out-forms/get.md +0 -211
- package/docs/commands/liberica/transfer-out-forms/list.md +0 -233
- package/docs/commands/liberica/transfer-out-forms/update.md +0 -286
- package/docs/commands/liberica/uoms/create.md +0 -136
- package/docs/commands/liberica/uoms/delete.md +0 -119
- package/docs/commands/liberica/uoms/disable.md +0 -117
- package/docs/commands/liberica/uoms/enable.md +0 -115
- package/docs/commands/liberica/uoms/get.md +0 -119
- package/docs/commands/liberica/uoms/list.md +0 -155
- package/docs/commands/liberica/uoms/update.md +0 -148
- package/docs/commands/liberica/users/create.md +0 -170
- package/docs/commands/liberica/users/get.md +0 -151
- package/docs/commands/liberica/users/list.md +0 -175
- package/docs/commands/liberica/warehouses/create.md +0 -222
- package/docs/commands/liberica/warehouses/list.md +0 -184
- package/src/commands/arabica/auth/index.ts +0 -277
- package/src/commands/arabica/auth/login.ts +0 -5
- package/src/commands/arabica/auth/logout.ts +0 -5
- package/src/commands/arabica/auth/register.ts +0 -5
- package/src/commands/arabica/auth/status.ts +0 -5
- package/src/commands/arabica/index.ts +0 -23
- package/src/commands/auth.ts +0 -107
- package/src/commands/context.ts +0 -60
- package/src/commands/liberica/auth/index.ts +0 -176
- package/src/commands/liberica/calendar/index.ts +0 -13
- package/src/commands/liberica/calendar/list.ts +0 -214
- package/src/commands/liberica/calendar/set.ts +0 -130
- package/src/commands/liberica/client-contacts/create.ts +0 -115
- package/src/commands/liberica/client-contacts/delete.ts +0 -140
- package/src/commands/liberica/client-contacts/get.ts +0 -103
- package/src/commands/liberica/client-contacts/index.ts +0 -19
- package/src/commands/liberica/client-contacts/list.ts +0 -118
- package/src/commands/liberica/client-contacts/update.ts +0 -137
- package/src/commands/liberica/clients/create.ts +0 -122
- package/src/commands/liberica/clients/delete.ts +0 -125
- package/src/commands/liberica/clients/get.ts +0 -88
- package/src/commands/liberica/clients/index.ts +0 -19
- package/src/commands/liberica/clients/list.ts +0 -123
- package/src/commands/liberica/clients/update.ts +0 -103
- package/src/commands/liberica/context/index.ts +0 -43
- package/src/commands/liberica/currency/create.ts +0 -183
- package/src/commands/liberica/currency/delete.ts +0 -124
- package/src/commands/liberica/currency/disable.ts +0 -147
- package/src/commands/liberica/currency/enable.ts +0 -128
- package/src/commands/liberica/currency/get.ts +0 -91
- package/src/commands/liberica/currency/index.ts +0 -23
- package/src/commands/liberica/currency/list.ts +0 -140
- package/src/commands/liberica/currency/update.ts +0 -129
- package/src/commands/liberica/dict-types/get.ts +0 -74
- package/src/commands/liberica/dict-types/index.ts +0 -15
- package/src/commands/liberica/dict-types/list.ts +0 -118
- package/src/commands/liberica/dict-types/update.ts +0 -134
- package/src/commands/liberica/dicts/create.ts +0 -175
- package/src/commands/liberica/dicts/delete.ts +0 -107
- package/src/commands/liberica/dicts/get.ts +0 -80
- package/src/commands/liberica/dicts/index.ts +0 -19
- package/src/commands/liberica/dicts/list.ts +0 -114
- package/src/commands/liberica/dicts/update.ts +0 -116
- package/src/commands/liberica/employees/create.ts +0 -275
- package/src/commands/liberica/employees/delete.ts +0 -122
- package/src/commands/liberica/employees/disable.ts +0 -97
- package/src/commands/liberica/employees/enable.ts +0 -97
- package/src/commands/liberica/employees/get.ts +0 -115
- package/src/commands/liberica/employees/index.ts +0 -23
- package/src/commands/liberica/employees/list.ts +0 -131
- package/src/commands/liberica/employees/update.ts +0 -157
- package/src/commands/liberica/index.ts +0 -81
- package/src/commands/liberica/materials/create.ts +0 -199
- package/src/commands/liberica/materials/delete.ts +0 -105
- package/src/commands/liberica/materials/disable.ts +0 -148
- package/src/commands/liberica/materials/enable.ts +0 -129
- package/src/commands/liberica/materials/get.ts +0 -83
- package/src/commands/liberica/materials/index.ts +0 -23
- package/src/commands/liberica/materials/list.ts +0 -142
- package/src/commands/liberica/materials/update.ts +0 -125
- package/src/commands/liberica/mould/get.ts +0 -111
- package/src/commands/liberica/mould/index.ts +0 -17
- package/src/commands/liberica/mould/list.ts +0 -157
- package/src/commands/liberica/mould/set-status.ts +0 -99
- package/src/commands/liberica/mould/stock-in.ts +0 -165
- package/src/commands/liberica/operations/active.ts +0 -153
- package/src/commands/liberica/operations/batch-delete.ts +0 -131
- package/src/commands/liberica/operations/copy.ts +0 -138
- package/src/commands/liberica/operations/create.ts +0 -223
- package/src/commands/liberica/operations/deactive.ts +0 -152
- package/src/commands/liberica/operations/delete.ts +0 -128
- package/src/commands/liberica/operations/design.md +0 -587
- package/src/commands/liberica/operations/get.ts +0 -112
- package/src/commands/liberica/operations/index.ts +0 -27
- package/src/commands/liberica/operations/list.ts +0 -180
- package/src/commands/liberica/operations/update.ts +0 -218
- package/src/commands/liberica/orgs/index.ts +0 -34
- package/src/commands/liberica/positions/index.ts +0 -30
- package/src/commands/liberica/roles/index.ts +0 -59
- package/src/commands/liberica/stock/index.ts +0 -13
- package/src/commands/liberica/stock/ledger.ts +0 -159
- package/src/commands/liberica/stock/list.ts +0 -128
- package/src/commands/liberica/supplier-contacts/create.ts +0 -120
- package/src/commands/liberica/supplier-contacts/delete.ts +0 -88
- package/src/commands/liberica/supplier-contacts/get.ts +0 -94
- package/src/commands/liberica/supplier-contacts/index.ts +0 -19
- package/src/commands/liberica/supplier-contacts/list.ts +0 -130
- package/src/commands/liberica/supplier-contacts/update.ts +0 -127
- package/src/commands/liberica/suppliers/create.ts +0 -149
- package/src/commands/liberica/suppliers/delete.ts +0 -102
- package/src/commands/liberica/suppliers/disable.ts +0 -145
- package/src/commands/liberica/suppliers/enable.ts +0 -126
- package/src/commands/liberica/suppliers/get.ts +0 -86
- package/src/commands/liberica/suppliers/index.ts +0 -23
- package/src/commands/liberica/suppliers/list.ts +0 -134
- package/src/commands/liberica/suppliers/update.ts +0 -128
- package/src/commands/liberica/teams/index.ts +0 -17
- package/src/commands/liberica/teams/issues/close.ts +0 -104
- package/src/commands/liberica/teams/issues/create.ts +0 -254
- package/src/commands/liberica/teams/issues/delete.ts +0 -58
- package/src/commands/liberica/teams/issues/get.ts +0 -78
- package/src/commands/liberica/teams/issues/index.ts +0 -21
- package/src/commands/liberica/teams/issues/list.ts +0 -144
- package/src/commands/liberica/teams/issues/update.ts +0 -141
- package/src/commands/liberica/teams/projects/create.ts +0 -159
- package/src/commands/liberica/teams/projects/delete.ts +0 -58
- package/src/commands/liberica/teams/projects/get.ts +0 -87
- package/src/commands/liberica/teams/projects/index.ts +0 -19
- package/src/commands/liberica/teams/projects/list.ts +0 -147
- package/src/commands/liberica/teams/projects/update.ts +0 -117
- package/src/commands/liberica/teams/tasks/create.ts +0 -102
- package/src/commands/liberica/teams/tasks/delete.ts +0 -92
- package/src/commands/liberica/teams/tasks/get.ts +0 -64
- package/src/commands/liberica/teams/tasks/index.ts +0 -19
- package/src/commands/liberica/teams/tasks/list.ts +0 -102
- package/src/commands/liberica/teams/tasks/update.ts +0 -122
- package/src/commands/liberica/teams/work-logs/create.ts +0 -204
- package/src/commands/liberica/teams/work-logs/delete.ts +0 -58
- package/src/commands/liberica/teams/work-logs/get.ts +0 -87
- package/src/commands/liberica/teams/work-logs/index.ts +0 -19
- package/src/commands/liberica/teams/work-logs/list.ts +0 -141
- package/src/commands/liberica/teams/work-logs/update.ts +0 -120
- package/src/commands/liberica/transfer-in-forms/batch-delete.ts +0 -152
- package/src/commands/liberica/transfer-in-forms/batch-review.ts +0 -151
- package/src/commands/liberica/transfer-in-forms/batch-unreview.ts +0 -152
- package/src/commands/liberica/transfer-in-forms/create.ts +0 -179
- package/src/commands/liberica/transfer-in-forms/get.ts +0 -107
- package/src/commands/liberica/transfer-in-forms/index.ts +0 -23
- package/src/commands/liberica/transfer-in-forms/list.ts +0 -97
- package/src/commands/liberica/transfer-in-forms/update.ts +0 -213
- package/src/commands/liberica/transfer-out-forms/batch-delete.ts +0 -83
- package/src/commands/liberica/transfer-out-forms/batch-review.ts +0 -148
- package/src/commands/liberica/transfer-out-forms/batch-unreview.ts +0 -56
- package/src/commands/liberica/transfer-out-forms/create.ts +0 -194
- package/src/commands/liberica/transfer-out-forms/get.ts +0 -114
- package/src/commands/liberica/transfer-out-forms/index.ts +0 -23
- package/src/commands/liberica/transfer-out-forms/list.ts +0 -125
- package/src/commands/liberica/transfer-out-forms/update.ts +0 -197
- package/src/commands/liberica/uoms/create.ts +0 -134
- package/src/commands/liberica/uoms/delete.ts +0 -105
- package/src/commands/liberica/uoms/disable.ts +0 -148
- package/src/commands/liberica/uoms/enable.ts +0 -129
- package/src/commands/liberica/uoms/get.ts +0 -83
- package/src/commands/liberica/uoms/index.ts +0 -23
- package/src/commands/liberica/uoms/list.ts +0 -129
- package/src/commands/liberica/uoms/update.ts +0 -124
- package/src/commands/liberica/users/create.ts +0 -133
- package/src/commands/liberica/users/delete.ts +0 -49
- package/src/commands/liberica/users/disable.ts +0 -41
- package/src/commands/liberica/users/enable.ts +0 -30
- package/src/commands/liberica/users/get.ts +0 -46
- package/src/commands/liberica/users/index.ts +0 -27
- package/src/commands/liberica/users/list.ts +0 -68
- package/src/commands/liberica/users/me.ts +0 -42
- package/src/commands/liberica/users/reset-password.ts +0 -42
- package/src/commands/liberica/users/update.ts +0 -48
- package/src/commands/liberica/warehouses/create.ts +0 -204
- package/src/commands/liberica/warehouses/delete.ts +0 -112
- package/src/commands/liberica/warehouses/disable.ts +0 -174
- package/src/commands/liberica/warehouses/enable.ts +0 -174
- package/src/commands/liberica/warehouses/get.ts +0 -101
- package/src/commands/liberica/warehouses/index.ts +0 -25
- package/src/commands/liberica/warehouses/list.ts +0 -136
- package/src/commands/liberica/warehouses/locations/create.ts +0 -209
- package/src/commands/liberica/warehouses/locations/delete.ts +0 -116
- package/src/commands/liberica/warehouses/locations/disable.ts +0 -174
- package/src/commands/liberica/warehouses/locations/enable.ts +0 -174
- package/src/commands/liberica/warehouses/locations/get.ts +0 -84
- package/src/commands/liberica/warehouses/locations/index.ts +0 -23
- package/src/commands/liberica/warehouses/locations/list.ts +0 -140
- package/src/commands/liberica/warehouses/locations/update.ts +0 -135
- package/src/commands/liberica/warehouses/update.ts +0 -142
- package/src/core/api/client.ts +0 -4443
- package/src/core/auth/token-manager.ts +0 -183
- package/src/core/config/manager.ts +0 -164
- package/src/index.ts +0 -35
- package/src/types/calendar.ts +0 -36
- package/src/types/client-contact.ts +0 -78
- package/src/types/client.ts +0 -115
- package/src/types/currency.ts +0 -90
- package/src/types/dict.ts +0 -121
- package/src/types/employee.ts +0 -102
- package/src/types/index.ts +0 -93
- package/src/types/location.ts +0 -66
- package/src/types/material.ts +0 -61
- package/src/types/mould-stock-in.ts +0 -82
- package/src/types/mould.ts +0 -74
- package/src/types/operation.ts +0 -72
- package/src/types/org.ts +0 -25
- package/src/types/position.ts +0 -24
- package/src/types/stock.ts +0 -161
- package/src/types/supplier-contact.ts +0 -78
- package/src/types/supplier.ts +0 -66
- package/src/types/team-issue.ts +0 -94
- package/src/types/team-project.ts +0 -74
- package/src/types/team-task.ts +0 -98
- package/src/types/team-work-log.ts +0 -87
- package/src/types/transfer-in-form.ts +0 -265
- package/src/types/transfer-out-form.ts +0 -290
- package/src/types/uom.ts +0 -60
- package/src/types/user.ts +0 -64
- package/src/types/warehouse.ts +0 -82
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { Command, Option } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { configManager } from '../../../../core/config/manager.js';
|
|
4
|
-
import { apiClient } from '../../../../core/api/client.js';
|
|
5
|
-
import { Environment } from '../../../../types/index.js';
|
|
6
|
-
import {
|
|
7
|
-
UpdateTeamProjectRequest,
|
|
8
|
-
ProjectStatus,
|
|
9
|
-
ProjectPriority,
|
|
10
|
-
} from '../../../../types/team-project.js';
|
|
11
|
-
|
|
12
|
-
export function createTeamProjectUpdateCommand(): Command {
|
|
13
|
-
const updateCommand = new Command('update');
|
|
14
|
-
updateCommand
|
|
15
|
-
.description('Update team project information')
|
|
16
|
-
.argument('<project-id>', 'Project ID')
|
|
17
|
-
.option('--name <string>', 'Project name')
|
|
18
|
-
.option('--code <string>', 'Project code')
|
|
19
|
-
.option('--desc <string>', 'Project description')
|
|
20
|
-
.option('--status <string>', 'Project status: ACTIVE/INACTIVE/ARCHIVED')
|
|
21
|
-
.option('--priority <string>', 'Priority: LOW/MEDIUM/HIGH/URGENT')
|
|
22
|
-
.option('--start-date <string>', 'Start date (YYYY-MM-DD)')
|
|
23
|
-
.option('--end-date <string>', 'End date (YYYY-MM-DD)')
|
|
24
|
-
.option('--manager-id <string>', 'Manager user ID')
|
|
25
|
-
.option('--team-id <string>', 'Team ID')
|
|
26
|
-
.addOption(new Option('--env <string>').hideHelp())
|
|
27
|
-
.addOption(new Option('--tenant <string>').hideHelp())
|
|
28
|
-
.option('--dry-run', 'Preview without actual API call')
|
|
29
|
-
.option('--json', 'Output as JSON');
|
|
30
|
-
|
|
31
|
-
updateCommand.action(async (projectId: string, options: Record<string, unknown>) => {
|
|
32
|
-
const context = configManager.getCurrentContext();
|
|
33
|
-
const environment = context.environment as Environment;
|
|
34
|
-
const tenant = context.tenant;
|
|
35
|
-
|
|
36
|
-
const fields: Partial<UpdateTeamProjectRequest> = { teamProjectId: projectId };
|
|
37
|
-
if (options.name) fields.projectName = options.name as string;
|
|
38
|
-
if (options.code) fields.projectCode = options.code as string;
|
|
39
|
-
if (options.desc) fields.projectDesc = options.desc as string;
|
|
40
|
-
if (options.status) fields.projectStatus = options.status as ProjectStatus;
|
|
41
|
-
if (options.priority) fields.priority = options.priority as ProjectPriority;
|
|
42
|
-
if (options.startDate) fields.startDate = options.startDate as string;
|
|
43
|
-
if (options.endDate) fields.endDate = options.endDate as string;
|
|
44
|
-
if (options.managerId) fields.managerId = options.managerId as string;
|
|
45
|
-
if (options.teamId) fields.teamId = options.teamId as string;
|
|
46
|
-
|
|
47
|
-
const fieldsToUpdate = Object.keys(fields).filter((k) => k !== 'teamProjectId');
|
|
48
|
-
if (fieldsToUpdate.length === 0) {
|
|
49
|
-
console.error(
|
|
50
|
-
chalk.red(
|
|
51
|
-
'\nā No fields to update. Provide at least one option: --name, --code, --desc, --status, --priority, --start-date, --end-date, --manager-id, --team-id\n'
|
|
52
|
-
)
|
|
53
|
-
);
|
|
54
|
-
process.exit(1);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (options.dryRun) {
|
|
58
|
-
console.log(chalk.bold('\nš Dry-Run Mode: Preview update\n'));
|
|
59
|
-
console.log(chalk.gray(' Project ID: ') + chalk.white(projectId));
|
|
60
|
-
if (fields.projectName) console.log(chalk.gray(' Name: ') + chalk.white(fields.projectName));
|
|
61
|
-
if (fields.projectCode) console.log(chalk.gray(' Code: ') + chalk.white(fields.projectCode));
|
|
62
|
-
if (fields.projectDesc) console.log(chalk.gray(' Description: ') + chalk.white(fields.projectDesc));
|
|
63
|
-
if (fields.projectStatus) console.log(chalk.gray(' Status: ') + chalk.white(fields.projectStatus));
|
|
64
|
-
if (fields.priority) console.log(chalk.gray(' Priority: ') + chalk.white(fields.priority));
|
|
65
|
-
if (fields.startDate) console.log(chalk.gray(' Start Date: ') + chalk.white(fields.startDate));
|
|
66
|
-
if (fields.endDate) console.log(chalk.gray(' End Date: ') + chalk.white(fields.endDate));
|
|
67
|
-
if (fields.managerId) console.log(chalk.gray(' Manager ID: ') + chalk.white(fields.managerId));
|
|
68
|
-
if (fields.teamId) console.log(chalk.gray(' Team ID: ') + chalk.white(fields.teamId));
|
|
69
|
-
console.log();
|
|
70
|
-
console.log(chalk.yellow(' ā ļø This is a dry-run. No API call was made.\n'));
|
|
71
|
-
process.exit(0);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
try {
|
|
75
|
-
const response = await apiClient.updateTeamProject(
|
|
76
|
-
environment,
|
|
77
|
-
tenant,
|
|
78
|
-
fields as UpdateTeamProjectRequest
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
if (response.success) {
|
|
82
|
-
if (options.json) {
|
|
83
|
-
console.log(JSON.stringify({ success: true, data: response.data }, null, 2));
|
|
84
|
-
} else {
|
|
85
|
-
console.log(chalk.green('\nā Team project updated successfully\n'));
|
|
86
|
-
}
|
|
87
|
-
} else {
|
|
88
|
-
if (options.json) {
|
|
89
|
-
console.log(JSON.stringify({ success: false, error: response.error }, null, 2));
|
|
90
|
-
} else {
|
|
91
|
-
console.error(chalk.red(`\nā Update failed: ${response.error?.message || 'Unknown error'}`));
|
|
92
|
-
if (response.error?.code) {
|
|
93
|
-
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
94
|
-
}
|
|
95
|
-
console.error();
|
|
96
|
-
}
|
|
97
|
-
process.exit(1);
|
|
98
|
-
}
|
|
99
|
-
} catch (error) {
|
|
100
|
-
if (options.json) {
|
|
101
|
-
console.log(
|
|
102
|
-
JSON.stringify({
|
|
103
|
-
success: false,
|
|
104
|
-
error: { message: error instanceof Error ? error.message : 'Unknown error' },
|
|
105
|
-
})
|
|
106
|
-
);
|
|
107
|
-
} else {
|
|
108
|
-
console.error(
|
|
109
|
-
chalk.red(`\nā Error: ${error instanceof Error ? error.message : 'Unknown error'}\n`)
|
|
110
|
-
);
|
|
111
|
-
}
|
|
112
|
-
process.exit(1);
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
return updateCommand;
|
|
117
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import Table from 'cli-table3';
|
|
4
|
-
import { configManager } from '../../../../core/config/manager.js';
|
|
5
|
-
import { apiClient } from '../../../../core/api/client.js';
|
|
6
|
-
import { CreateTeamTaskRequest, TeamTask } from '../../../../types/team-task.js';
|
|
7
|
-
import { Environment } from '../../../../types/index.js';
|
|
8
|
-
|
|
9
|
-
export function createTeamTaskCreateCommand(): Command {
|
|
10
|
-
const createCommand = new Command('create');
|
|
11
|
-
createCommand.description('Create a new team task');
|
|
12
|
-
|
|
13
|
-
createCommand
|
|
14
|
-
.option('-t, --title <string>', 'Task title (required)')
|
|
15
|
-
.option('-d, --desc <string>', 'Task description')
|
|
16
|
-
.option('-p, --priority <string>', 'Priority (LOW/MEDIUM/HIGH/URGENT)', 'MEDIUM')
|
|
17
|
-
.option('-s, --status <string>', 'Status (OPEN/IN_PROGRESS/RESOLVED/CLOSED)', 'OPEN')
|
|
18
|
-
.option('-a, --assign-to <string>', 'Assignee (required)')
|
|
19
|
-
.option('--tags <string>', 'Tags (comma-separated)')
|
|
20
|
-
.option('--task-code <string>', 'Task code')
|
|
21
|
-
.option('--start-time <string>', 'Start time (ISO-8601)')
|
|
22
|
-
.option('--end-time <string>', 'End time (ISO-8601)')
|
|
23
|
-
.option('--completion-rate <number>', 'Completion rate (0-100)')
|
|
24
|
-
.option('--ref-id <string>', 'Reference ID')
|
|
25
|
-
.option('--dry-run', 'Preview without executing')
|
|
26
|
-
.option('--json', 'Output as JSON')
|
|
27
|
-
.action(async (options) => {
|
|
28
|
-
const context = configManager.getCurrentContext();
|
|
29
|
-
const environment = (options.env as Environment) || context.environment;
|
|
30
|
-
const tenant = options.tenant || context.tenant;
|
|
31
|
-
|
|
32
|
-
const taskTitle = options.title;
|
|
33
|
-
const assignTo = options.assignTo;
|
|
34
|
-
|
|
35
|
-
if (!taskTitle) {
|
|
36
|
-
console.error(chalk.red('\nā Task title is required. Use --title <title>'));
|
|
37
|
-
process.exit(1);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (!assignTo) {
|
|
41
|
-
console.error(chalk.red('\nā Assignee is required. Use --assign-to <user>'));
|
|
42
|
-
process.exit(1);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const request: CreateTeamTaskRequest = {
|
|
46
|
-
taskTitle,
|
|
47
|
-
taskType: 'REQUIREMENT' as const,
|
|
48
|
-
taskDesc: options.desc,
|
|
49
|
-
projectId: '',
|
|
50
|
-
projectCode: '',
|
|
51
|
-
projectName: '',
|
|
52
|
-
assignTo: assignTo ? [assignTo] : undefined,
|
|
53
|
-
teamTaskStatus: options.status as any,
|
|
54
|
-
priority: options.priority as any,
|
|
55
|
-
tags: options.tags ? options.tags.split(',') : undefined,
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
if (options.dryRun) {
|
|
59
|
-
console.log(chalk.yellow('\nš Dry-Run Mode: The following team task will be created:\n'));
|
|
60
|
-
const previewTable = new Table({
|
|
61
|
-
head: ['Field', 'Value'],
|
|
62
|
-
colWidths: [20, 50],
|
|
63
|
-
});
|
|
64
|
-
previewTable.push(['Title', taskTitle]);
|
|
65
|
-
previewTable.push(['Description', options.desc || '-']);
|
|
66
|
-
previewTable.push(['Priority', options.priority]);
|
|
67
|
-
previewTable.push(['Status', options.status]);
|
|
68
|
-
previewTable.push(['Assignee', assignTo]);
|
|
69
|
-
previewTable.push(['Tags', options.tags || '-']);
|
|
70
|
-
previewTable.push(['Task Code', options.taskCode || '(auto-generated)']);
|
|
71
|
-
console.log(previewTable.toString());
|
|
72
|
-
console.log(chalk.yellow('\nā ļø Add --confirm to execute or remove --dry-run\n'));
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const response = await apiClient.createTeamTask(environment, tenant, request);
|
|
77
|
-
|
|
78
|
-
if (!response.success) {
|
|
79
|
-
console.error(chalk.red(`\nā Failed to create team task: ${response.error?.message || 'Unknown error'}`));
|
|
80
|
-
process.exit(1);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const task = response.data as TeamTask;
|
|
84
|
-
|
|
85
|
-
if (options.json) {
|
|
86
|
-
console.log(JSON.stringify({ success: true, data: task }, null, 2));
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
console.log(chalk.green('\nā Team task created successfully\n'));
|
|
91
|
-
const table = new Table({
|
|
92
|
-
head: ['Field', 'Value'],
|
|
93
|
-
colWidths: [20, 50],
|
|
94
|
-
});
|
|
95
|
-
table.push(['Task ID', task.teamTaskId]);
|
|
96
|
-
table.push(['Task Code', task.teamTaskCode || '-']);
|
|
97
|
-
table.push(['Title', task.taskTitle]);
|
|
98
|
-
console.log(table.toString());
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
return createCommand;
|
|
102
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import Table from 'cli-table3';
|
|
4
|
-
import { configManager } from '../../../../core/config/manager.js';
|
|
5
|
-
import { apiClient } from '../../../../core/api/client.js';
|
|
6
|
-
import { Environment } from '../../../../types/index.js';
|
|
7
|
-
|
|
8
|
-
export function createTeamTaskDeleteCommand(): Command {
|
|
9
|
-
const deleteCommand = new Command('delete');
|
|
10
|
-
deleteCommand.description('Delete a team task');
|
|
11
|
-
|
|
12
|
-
deleteCommand
|
|
13
|
-
.option('-i, --task-id <string>', 'Task ID (required)')
|
|
14
|
-
.option('-f, --force', 'Skip confirmation')
|
|
15
|
-
.option('--dry-run', 'Preview without executing')
|
|
16
|
-
.option('--json', 'Output as JSON')
|
|
17
|
-
.action(async (options) => {
|
|
18
|
-
const context = configManager.getCurrentContext();
|
|
19
|
-
const environment = (options.env as Environment) || context.environment;
|
|
20
|
-
const tenant = options.tenant || context.tenant;
|
|
21
|
-
|
|
22
|
-
const taskId = options.taskId;
|
|
23
|
-
|
|
24
|
-
if (!taskId) {
|
|
25
|
-
console.error(chalk.red('\nā Task ID is required. Use --task-id <id>'));
|
|
26
|
-
process.exit(1);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
if (options.dryRun) {
|
|
30
|
-
console.log(chalk.yellow('\nš Dry-Run Mode: The following team task will be deleted:\n'));
|
|
31
|
-
const previewTable = new Table({
|
|
32
|
-
head: ['Field', 'Value'],
|
|
33
|
-
colWidths: [20, 50],
|
|
34
|
-
});
|
|
35
|
-
previewTable.push(['Task ID', taskId]);
|
|
36
|
-
console.log(previewTable.toString());
|
|
37
|
-
console.log(chalk.yellow('\nā ļø Add --confirm to execute or remove --dry-run\n'));
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (!options.force) {
|
|
42
|
-
const readline = require('readline').createInterface({
|
|
43
|
-
input: process.stdin,
|
|
44
|
-
output: process.stdout,
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
return new Promise<void>((resolve) => {
|
|
48
|
-
readline.question(
|
|
49
|
-
chalk.yellow(`\nā ļø Are you sure you want to delete team task ${taskId}? (y/N): `),
|
|
50
|
-
async (answer: string) => {
|
|
51
|
-
readline.close();
|
|
52
|
-
if (answer.toLowerCase() !== 'y') {
|
|
53
|
-
console.log(chalk.gray('\nOperation cancelled.'));
|
|
54
|
-
process.exit(0);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const response = await apiClient.deleteTeamTask(environment, tenant, taskId);
|
|
58
|
-
|
|
59
|
-
if (!response.success) {
|
|
60
|
-
console.error(chalk.red(`\nā Failed to delete team task: ${response.error?.message || 'Unknown error'}`));
|
|
61
|
-
process.exit(1);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (options.json) {
|
|
65
|
-
console.log(JSON.stringify({ success: true, message: 'Team task deleted successfully' }, null, 2));
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
console.log(chalk.green('\nā Team task deleted successfully\n'));
|
|
70
|
-
resolve();
|
|
71
|
-
}
|
|
72
|
-
);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const response = await apiClient.deleteTeamTask(environment, tenant, taskId);
|
|
77
|
-
|
|
78
|
-
if (!response.success) {
|
|
79
|
-
console.error(chalk.red(`\nā Failed to delete team task: ${response.error?.message || 'Unknown error'}`));
|
|
80
|
-
process.exit(1);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (options.json) {
|
|
84
|
-
console.log(JSON.stringify({ success: true, message: 'Team task deleted successfully' }, null, 2));
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
console.log(chalk.green('\nā Team task deleted successfully\n'));
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
return deleteCommand;
|
|
92
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import Table from 'cli-table3';
|
|
4
|
-
import { configManager } from '../../../../core/config/manager.js';
|
|
5
|
-
import { apiClient } from '../../../../core/api/client.js';
|
|
6
|
-
import { TeamTask } from '../../../../types/team-task.js';
|
|
7
|
-
import { Environment } from '../../../../types/index.js';
|
|
8
|
-
|
|
9
|
-
export function createTeamTaskGetCommand(): Command {
|
|
10
|
-
const getCommand = new Command('get');
|
|
11
|
-
getCommand.description('Get team task details');
|
|
12
|
-
|
|
13
|
-
getCommand
|
|
14
|
-
.option('-i, --task-id <string>', 'Task ID')
|
|
15
|
-
.option('--json', 'Output as JSON')
|
|
16
|
-
.action(async (options) => {
|
|
17
|
-
const context = configManager.getCurrentContext();
|
|
18
|
-
const environment = (options.env as Environment) || context.environment;
|
|
19
|
-
const tenant = options.tenant || context.tenant;
|
|
20
|
-
|
|
21
|
-
const taskId = options.taskId;
|
|
22
|
-
|
|
23
|
-
if (!taskId) {
|
|
24
|
-
console.error(chalk.red('\nā Task ID is required. Use --task-id <id>'));
|
|
25
|
-
process.exit(1);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const response = await apiClient.getTeamTask(environment, tenant, taskId);
|
|
29
|
-
|
|
30
|
-
if (!response.success) {
|
|
31
|
-
console.error(chalk.red(`\nā Failed to get team task: ${response.error?.message || 'Unknown error'}`));
|
|
32
|
-
process.exit(1);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const task = response.data as TeamTask;
|
|
36
|
-
|
|
37
|
-
if (options.json) {
|
|
38
|
-
console.log(JSON.stringify({ success: true, data: task }, null, 2));
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const table = new Table({
|
|
43
|
-
head: ['Field', 'Value'],
|
|
44
|
-
colWidths: [20, 50],
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
table.push(['Task ID', task.teamTaskId]);
|
|
48
|
-
table.push(['Task Code', task.teamTaskCode || '-']);
|
|
49
|
-
table.push(['Title', task.taskTitle]);
|
|
50
|
-
table.push(['Description', task.taskDesc || '-']);
|
|
51
|
-
table.push(['Type', task.taskType]);
|
|
52
|
-
table.push(['Status', task.teamTaskStatus]);
|
|
53
|
-
table.push(['Priority', task.priority]);
|
|
54
|
-
table.push(['Reporter', task.reporterName || '-']);
|
|
55
|
-
table.push(['Assignee', task.assignTo || '-']);
|
|
56
|
-
table.push(['Tags', task.tags || '-']);
|
|
57
|
-
table.push(['Reference ID', task.refId || '-']);
|
|
58
|
-
|
|
59
|
-
console.log(chalk.bold('\nš Team Task Details'));
|
|
60
|
-
console.log(table.toString());
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
return getCommand;
|
|
64
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import { createTeamTaskListCommand } from './list.js';
|
|
3
|
-
import { createTeamTaskGetCommand } from './get.js';
|
|
4
|
-
import { createTeamTaskCreateCommand } from './create.js';
|
|
5
|
-
import { createTeamTaskUpdateCommand } from './update.js';
|
|
6
|
-
import { createTeamTaskDeleteCommand } from './delete.js';
|
|
7
|
-
|
|
8
|
-
export function createTeamTasksCommand(): Command {
|
|
9
|
-
const tasksCommand = new Command('tasks');
|
|
10
|
-
tasksCommand.description('Manage team tasks');
|
|
11
|
-
|
|
12
|
-
tasksCommand.addCommand(createTeamTaskListCommand());
|
|
13
|
-
tasksCommand.addCommand(createTeamTaskGetCommand());
|
|
14
|
-
tasksCommand.addCommand(createTeamTaskCreateCommand());
|
|
15
|
-
tasksCommand.addCommand(createTeamTaskUpdateCommand());
|
|
16
|
-
tasksCommand.addCommand(createTeamTaskDeleteCommand());
|
|
17
|
-
|
|
18
|
-
return tasksCommand;
|
|
19
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import Table from 'cli-table3';
|
|
4
|
-
import { configManager } from '../../../../core/config/manager.js';
|
|
5
|
-
import { apiClient } from '../../../../core/api/client.js';
|
|
6
|
-
import {
|
|
7
|
-
TeamTaskQueryParams,
|
|
8
|
-
TeamTaskListResponse,
|
|
9
|
-
TeamTaskStatus,
|
|
10
|
-
TeamTaskPriority,
|
|
11
|
-
} from '../../../../types/team-task.js';
|
|
12
|
-
import { Environment } from '../../../../types/index.js';
|
|
13
|
-
|
|
14
|
-
export function createTeamTaskListCommand(): Command {
|
|
15
|
-
const listCommand = new Command('list');
|
|
16
|
-
listCommand.description('List team tasks with pagination');
|
|
17
|
-
|
|
18
|
-
listCommand
|
|
19
|
-
.option('-p, --page <number>', 'Page number', '1')
|
|
20
|
-
.option('-s, --size <number>', 'Page size', '20')
|
|
21
|
-
.option('-t, --title <string>', 'Filter by task title')
|
|
22
|
-
.option('--status <string>', 'Filter by status (OPEN/IN_PROGRESS/RESOLVED/CLOSED)')
|
|
23
|
-
.option('--priority <string>', 'Filter by priority (LOW/MEDIUM/HIGH/URGENT)')
|
|
24
|
-
.option('-a, --assign-to <string>', 'Filter by assignee')
|
|
25
|
-
.option('-c, --creator-name <string>', 'Filter by creator name')
|
|
26
|
-
.option('--task-code <string>', 'Filter by task code')
|
|
27
|
-
.option('--json', 'Output as JSON')
|
|
28
|
-
.action(async (options) => {
|
|
29
|
-
const context = configManager.getCurrentContext();
|
|
30
|
-
const environment = (options.env as Environment) || context.environment;
|
|
31
|
-
const tenant = options.tenant || context.tenant;
|
|
32
|
-
|
|
33
|
-
const page = parseInt(options.page as string, 10) - 1;
|
|
34
|
-
const size = parseInt(options.size as string, 10);
|
|
35
|
-
|
|
36
|
-
const params: TeamTaskQueryParams = {
|
|
37
|
-
pageNo: page,
|
|
38
|
-
pageSize: size,
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
if (options.title) {
|
|
42
|
-
params.taskTitle = options.title;
|
|
43
|
-
}
|
|
44
|
-
if (options.status) {
|
|
45
|
-
params.teamTaskStatus = options.status as TeamTaskStatus;
|
|
46
|
-
}
|
|
47
|
-
if (options.priority) {
|
|
48
|
-
params.priority = options.priority as TeamTaskPriority;
|
|
49
|
-
}
|
|
50
|
-
if (options.assignTo) {
|
|
51
|
-
params.assignTo = options.assignTo;
|
|
52
|
-
}
|
|
53
|
-
if (options.creatorName) {
|
|
54
|
-
params.reporterName = options.creatorName;
|
|
55
|
-
}
|
|
56
|
-
if (options.taskCode) {
|
|
57
|
-
params.teamTaskCode = options.taskCode;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const response = await apiClient.listTeamTasks(environment, tenant, params);
|
|
61
|
-
|
|
62
|
-
if (!response.success) {
|
|
63
|
-
console.error(chalk.red(`\nā Failed to list team tasks: ${response.error?.message || 'Unknown error'}`));
|
|
64
|
-
process.exit(1);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const data = response.data as TeamTaskListResponse;
|
|
68
|
-
|
|
69
|
-
if (options.json) {
|
|
70
|
-
console.log(JSON.stringify({ success: true, data }, null, 2));
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (!data.rows || data.rows.length === 0) {
|
|
75
|
-
console.log(chalk.yellow('\nNo team tasks found.'));
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const table = new Table({
|
|
80
|
-
head: ['Task ID', 'Task Code', 'Title', 'Status', 'Priority', 'Assignee', 'Creator'],
|
|
81
|
-
colWidths: [12, 12, 30, 12, 10, 15, 15],
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
data.rows.forEach((task) => {
|
|
85
|
-
table.push([
|
|
86
|
-
task.teamTaskId,
|
|
87
|
-
task.teamTaskCode || '-',
|
|
88
|
-
task.taskTitle,
|
|
89
|
-
task.teamTaskStatus,
|
|
90
|
-
task.priority,
|
|
91
|
-
task.assignTo || '-',
|
|
92
|
-
task.reporterName || '-',
|
|
93
|
-
]);
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
console.log(chalk.bold('\nš Team Tasks List'));
|
|
97
|
-
console.log(table.toString());
|
|
98
|
-
console.log(chalk.gray(`\nTotal: ${data.totalRows} | Page: ${data.pageNo + 1}/${Math.ceil(data.totalRows / data.pageSize)}`));
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
return listCommand;
|
|
102
|
-
}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import Table from 'cli-table3';
|
|
4
|
-
import { configManager } from '../../../../core/config/manager.js';
|
|
5
|
-
import { apiClient } from '../../../../core/api/client.js';
|
|
6
|
-
import { UpdateTeamTaskRequest, TeamTask } from '../../../../types/team-task.js';
|
|
7
|
-
import { Environment } from '../../../../types/index.js';
|
|
8
|
-
|
|
9
|
-
export function createTeamTaskUpdateCommand(): Command {
|
|
10
|
-
const updateCommand = new Command('update');
|
|
11
|
-
updateCommand.description('Update a team task');
|
|
12
|
-
|
|
13
|
-
updateCommand
|
|
14
|
-
.option('-i, --task-id <string>', 'Task ID (required)')
|
|
15
|
-
.option('-t, --title <string>', 'Task title')
|
|
16
|
-
.option('-d, --desc <string>', 'Task description')
|
|
17
|
-
.option('-p, --priority <string>', 'Priority (LOW/MEDIUM/HIGH/URGENT)')
|
|
18
|
-
.option('-s, --status <string>', 'Status (OPEN/IN_PROGRESS/RESOLVED/CLOSED)')
|
|
19
|
-
.option('-a, --assign-to <string>', 'Assignee')
|
|
20
|
-
.option('--tags <string>', 'Tags (comma-separated)')
|
|
21
|
-
.option('--task-code <string>', 'Task code')
|
|
22
|
-
.option('--start-time <string>', 'Start time (ISO-8601)')
|
|
23
|
-
.option('--end-time <string>', 'End time (ISO-8601)')
|
|
24
|
-
.option('--completion-rate <number>', 'Completion rate (0-100)')
|
|
25
|
-
.option('--ref-id <string>', 'Reference ID')
|
|
26
|
-
.option('--dry-run', 'Preview without executing')
|
|
27
|
-
.option('--json', 'Output as JSON')
|
|
28
|
-
.action(async (options) => {
|
|
29
|
-
const context = configManager.getCurrentContext();
|
|
30
|
-
const environment = (options.env as Environment) || context.environment;
|
|
31
|
-
const tenant = options.tenant || context.tenant;
|
|
32
|
-
|
|
33
|
-
const taskId = options.taskId;
|
|
34
|
-
|
|
35
|
-
if (!taskId) {
|
|
36
|
-
console.error(chalk.red('\nā Task ID is required. Use --task-id <id>'));
|
|
37
|
-
process.exit(1);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const request: UpdateTeamTaskRequest = {
|
|
41
|
-
teamTaskId: taskId,
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
if (options.title) {
|
|
45
|
-
request.taskTitle = options.title;
|
|
46
|
-
}
|
|
47
|
-
if (options.desc) {
|
|
48
|
-
request.taskDesc = options.desc;
|
|
49
|
-
}
|
|
50
|
-
if (options.priority) {
|
|
51
|
-
request.priority = options.priority as any;
|
|
52
|
-
}
|
|
53
|
-
if (options.status) {
|
|
54
|
-
request.teamTaskStatus = options.status as any;
|
|
55
|
-
}
|
|
56
|
-
if (options.assignTo) {
|
|
57
|
-
request.assignTo = options.assignTo.split(',');
|
|
58
|
-
}
|
|
59
|
-
if (options.tags) {
|
|
60
|
-
request.tags = options.tags.split(',');
|
|
61
|
-
}
|
|
62
|
-
if (options.taskCode) {
|
|
63
|
-
request.taskCode = options.taskCode;
|
|
64
|
-
}
|
|
65
|
-
if (options.startTime) {
|
|
66
|
-
request.startTime = options.startTime;
|
|
67
|
-
}
|
|
68
|
-
if (options.endTime) {
|
|
69
|
-
request.endTime = options.endTime;
|
|
70
|
-
}
|
|
71
|
-
if (options.completionRate) {
|
|
72
|
-
request.completionRate = options.completionRate;
|
|
73
|
-
}
|
|
74
|
-
if (options.refId) {
|
|
75
|
-
request.refId = options.refId;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (options.dryRun) {
|
|
79
|
-
console.log(chalk.yellow('\nš Dry-Run Mode: The following team task will be updated:\n'));
|
|
80
|
-
const previewTable = new Table({
|
|
81
|
-
head: ['Field', 'Value'],
|
|
82
|
-
colWidths: [20, 50],
|
|
83
|
-
});
|
|
84
|
-
previewTable.push(['Task ID', taskId]);
|
|
85
|
-
if (options.title) previewTable.push(['Title', options.title]);
|
|
86
|
-
if (options.desc) previewTable.push(['Description', options.desc]);
|
|
87
|
-
if (options.priority) previewTable.push(['Priority', options.priority]);
|
|
88
|
-
if (options.status) previewTable.push(['Status', options.status]);
|
|
89
|
-
if (options.assignTo) previewTable.push(['Assignee', options.assignTo]);
|
|
90
|
-
if (options.tags) previewTable.push(['Tags', options.tags]);
|
|
91
|
-
console.log(previewTable.toString());
|
|
92
|
-
console.log(chalk.yellow('\nā ļø Add --confirm to execute or remove --dry-run\n'));
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const response = await apiClient.updateTeamTask(environment, tenant, request);
|
|
97
|
-
|
|
98
|
-
if (!response.success) {
|
|
99
|
-
console.error(chalk.red(`\nā Failed to update team task: ${response.error?.message || 'Unknown error'}`));
|
|
100
|
-
process.exit(1);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
const task = response.data as TeamTask;
|
|
104
|
-
|
|
105
|
-
if (options.json) {
|
|
106
|
-
console.log(JSON.stringify({ success: true, data: task }, null, 2));
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
console.log(chalk.green('\nā Team task updated successfully\n'));
|
|
111
|
-
const table = new Table({
|
|
112
|
-
head: ['Field', 'Value'],
|
|
113
|
-
colWidths: [20, 50],
|
|
114
|
-
});
|
|
115
|
-
table.push(['Task ID', task.teamTaskId]);
|
|
116
|
-
table.push(['Task Code', task.teamTaskCode || '-']);
|
|
117
|
-
table.push(['Title', task.taskTitle]);
|
|
118
|
-
console.log(table.toString());
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
return updateCommand;
|
|
122
|
-
}
|