@newpeak/barista-cli 0.1.4 ā 0.1.5
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/commands/liberica/auth/index.d.ts.map +1 -1
- package/dist/commands/liberica/auth/index.js +5 -0
- package/dist/commands/liberica/auth/index.js.map +1 -1
- package/dist/commands/liberica/index.d.ts.map +1 -1
- package/dist/commands/liberica/index.js +8 -0
- package/dist/commands/liberica/index.js.map +1 -1
- package/dist/commands/liberica/materials/create.d.ts +3 -0
- package/dist/commands/liberica/materials/create.d.ts.map +1 -0
- package/dist/commands/liberica/materials/create.js +154 -0
- package/dist/commands/liberica/materials/create.js.map +1 -0
- package/dist/commands/liberica/materials/delete.d.ts +3 -0
- package/dist/commands/liberica/materials/delete.d.ts.map +1 -0
- package/dist/commands/liberica/materials/delete.js +104 -0
- package/dist/commands/liberica/materials/delete.js.map +1 -0
- package/dist/commands/liberica/materials/disable.d.ts +3 -0
- package/dist/commands/liberica/materials/disable.d.ts.map +1 -0
- package/dist/commands/liberica/materials/disable.js +146 -0
- package/dist/commands/liberica/materials/disable.js.map +1 -0
- package/dist/commands/liberica/materials/enable.d.ts +3 -0
- package/dist/commands/liberica/materials/enable.d.ts.map +1 -0
- package/dist/commands/liberica/materials/enable.js +126 -0
- package/dist/commands/liberica/materials/enable.js.map +1 -0
- package/dist/commands/liberica/materials/get.d.ts +3 -0
- package/dist/commands/liberica/materials/get.d.ts.map +1 -0
- package/dist/commands/liberica/materials/get.js +71 -0
- package/dist/commands/liberica/materials/get.js.map +1 -0
- package/dist/commands/liberica/materials/index.d.ts +3 -0
- package/dist/commands/liberica/materials/index.d.ts.map +1 -0
- package/dist/commands/liberica/materials/index.js +21 -0
- package/dist/commands/liberica/materials/index.js.map +1 -0
- package/dist/commands/liberica/materials/list.d.ts +3 -0
- package/dist/commands/liberica/materials/list.d.ts.map +1 -0
- package/dist/commands/liberica/materials/list.js +107 -0
- package/dist/commands/liberica/materials/list.js.map +1 -0
- package/dist/commands/liberica/materials/update.d.ts +3 -0
- package/dist/commands/liberica/materials/update.d.ts.map +1 -0
- package/dist/commands/liberica/materials/update.js +118 -0
- package/dist/commands/liberica/materials/update.js.map +1 -0
- package/dist/commands/liberica/suppliers/create.d.ts +3 -0
- package/dist/commands/liberica/suppliers/create.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/create.js +140 -0
- package/dist/commands/liberica/suppliers/create.js.map +1 -0
- package/dist/commands/liberica/suppliers/delete.d.ts +3 -0
- package/dist/commands/liberica/suppliers/delete.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/delete.js +102 -0
- package/dist/commands/liberica/suppliers/delete.js.map +1 -0
- package/dist/commands/liberica/suppliers/disable.d.ts +3 -0
- package/dist/commands/liberica/suppliers/disable.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/disable.js +144 -0
- package/dist/commands/liberica/suppliers/disable.js.map +1 -0
- package/dist/commands/liberica/suppliers/enable.d.ts +3 -0
- package/dist/commands/liberica/suppliers/enable.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/enable.js +124 -0
- package/dist/commands/liberica/suppliers/enable.js.map +1 -0
- package/dist/commands/liberica/suppliers/get.d.ts +3 -0
- package/dist/commands/liberica/suppliers/get.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/get.js +75 -0
- package/dist/commands/liberica/suppliers/get.js.map +1 -0
- package/dist/commands/liberica/suppliers/index.d.ts +3 -0
- package/dist/commands/liberica/suppliers/index.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/index.js +21 -0
- package/dist/commands/liberica/suppliers/index.js.map +1 -0
- package/dist/commands/liberica/suppliers/list.d.ts +3 -0
- package/dist/commands/liberica/suppliers/list.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/list.js +100 -0
- package/dist/commands/liberica/suppliers/list.js.map +1 -0
- package/dist/commands/liberica/suppliers/update.d.ts +3 -0
- package/dist/commands/liberica/suppliers/update.d.ts.map +1 -0
- package/dist/commands/liberica/suppliers/update.js +122 -0
- package/dist/commands/liberica/suppliers/update.js.map +1 -0
- package/dist/commands/liberica/uoms/create.d.ts +3 -0
- package/dist/commands/liberica/uoms/create.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/create.js +120 -0
- package/dist/commands/liberica/uoms/create.js.map +1 -0
- package/dist/commands/liberica/uoms/delete.d.ts +3 -0
- package/dist/commands/liberica/uoms/delete.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/delete.js +104 -0
- package/dist/commands/liberica/uoms/delete.js.map +1 -0
- package/dist/commands/liberica/uoms/disable.d.ts +3 -0
- package/dist/commands/liberica/uoms/disable.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/disable.js +146 -0
- package/dist/commands/liberica/uoms/disable.js.map +1 -0
- package/dist/commands/liberica/uoms/enable.d.ts +3 -0
- package/dist/commands/liberica/uoms/enable.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/enable.js +126 -0
- package/dist/commands/liberica/uoms/enable.js.map +1 -0
- package/dist/commands/liberica/uoms/get.d.ts +3 -0
- package/dist/commands/liberica/uoms/get.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/get.js +71 -0
- package/dist/commands/liberica/uoms/get.js.map +1 -0
- package/dist/commands/liberica/uoms/index.d.ts +3 -0
- package/dist/commands/liberica/uoms/index.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/index.js +21 -0
- package/dist/commands/liberica/uoms/index.js.map +1 -0
- package/dist/commands/liberica/uoms/list.d.ts +3 -0
- package/dist/commands/liberica/uoms/list.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/list.js +98 -0
- package/dist/commands/liberica/uoms/list.js.map +1 -0
- package/dist/commands/liberica/uoms/update.d.ts +3 -0
- package/dist/commands/liberica/uoms/update.d.ts.map +1 -0
- package/dist/commands/liberica/uoms/update.js +115 -0
- package/dist/commands/liberica/uoms/update.js.map +1 -0
- package/dist/core/api/client.d.ts +24 -0
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +465 -0
- package/dist/core/api/client.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/types/index.d.ts +5 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/material.d.ts +49 -0
- package/dist/types/material.d.ts.map +1 -0
- package/dist/types/material.js +2 -0
- package/dist/types/material.js.map +1 -0
- package/dist/types/supplier.d.ts +53 -0
- package/dist/types/supplier.d.ts.map +1 -0
- package/dist/types/supplier.js +2 -0
- package/dist/types/supplier.js.map +1 -0
- package/dist/types/uom.d.ts +47 -0
- package/dist/types/uom.d.ts.map +1 -0
- package/dist/types/uom.js +2 -0
- package/dist/types/uom.js.map +1 -0
- package/docs/commands/liberica/materials-create.md +293 -0
- package/docs/commands/liberica/materials-delete.md +240 -0
- package/docs/commands/liberica/materials-disable.md +150 -0
- package/docs/commands/liberica/materials-enable.md +146 -0
- package/docs/commands/liberica/materials-get.md +188 -0
- package/docs/commands/liberica/materials-list.md +198 -0
- package/docs/commands/liberica/materials-update.md +250 -0
- package/docs/commands/liberica/uoms-create.md +136 -0
- package/docs/commands/liberica/uoms-delete.md +119 -0
- package/docs/commands/liberica/uoms-disable.md +117 -0
- package/docs/commands/liberica/uoms-enable.md +115 -0
- package/docs/commands/liberica/uoms-get.md +119 -0
- package/docs/commands/liberica/uoms-list.md +155 -0
- package/docs/commands/liberica/uoms-update.md +148 -0
- package/package.json +2 -4
- package/src/commands/liberica/auth/index.ts +6 -0
- package/src/commands/liberica/index.ts +8 -0
- package/src/commands/liberica/materials/create.ts +168 -0
- package/src/commands/liberica/materials/delete.ts +105 -0
- package/src/commands/liberica/materials/disable.ts +148 -0
- package/src/commands/liberica/materials/enable.ts +129 -0
- package/src/commands/liberica/materials/get.ts +83 -0
- package/src/commands/liberica/materials/index.ts +23 -0
- package/src/commands/liberica/materials/list.ts +142 -0
- package/src/commands/liberica/materials/update.ts +125 -0
- package/src/commands/liberica/suppliers/create.ts +149 -0
- package/src/commands/liberica/suppliers/delete.ts +102 -0
- package/src/commands/liberica/suppliers/disable.ts +145 -0
- package/src/commands/liberica/suppliers/enable.ts +126 -0
- package/src/commands/liberica/suppliers/get.ts +86 -0
- package/src/commands/liberica/suppliers/index.ts +23 -0
- package/src/commands/liberica/suppliers/list.ts +134 -0
- package/src/commands/liberica/suppliers/update.ts +128 -0
- package/src/commands/liberica/uoms/create.ts +134 -0
- package/src/commands/liberica/uoms/delete.ts +105 -0
- package/src/commands/liberica/uoms/disable.ts +148 -0
- package/src/commands/liberica/uoms/enable.ts +129 -0
- package/src/commands/liberica/uoms/get.ts +83 -0
- package/src/commands/liberica/uoms/index.ts +23 -0
- package/src/commands/liberica/uoms/list.ts +129 -0
- package/src/commands/liberica/uoms/update.ts +124 -0
- package/src/core/api/client.ts +585 -0
- package/src/index.ts +1 -1
- package/src/types/index.ts +5 -2
- package/src/types/material.ts +61 -0
- package/src/types/supplier.ts +66 -0
- package/src/types/uom.ts +60 -0
- package/bin/barista.js +0 -3
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# barista liberica uoms list
|
|
2
|
+
|
|
3
|
+
å锵ę„询讔éåä½å蔨ć
|
|
4
|
+
|
|
5
|
+
## 2.1 å½ä»¤å
ę°ę®
|
|
6
|
+
|
|
7
|
+
| åꮵ | å¼ |
|
|
8
|
+
|------|-----|
|
|
9
|
+
| å®ę“å½ä»¤ | `barista liberica uoms list` |
|
|
10
|
+
| åč½ęčæ° | å锵ę„询讔éåä½å蔨 |
|
|
11
|
+
| HTTPę¹ę³ | GET |
|
|
12
|
+
| ęÆå¦éč¦č®¤čÆ | ā
ęÆ |
|
|
13
|
+
| ęÆå¦ęÆędry-run | ā¬ å¦ |
|
|
14
|
+
|
|
15
|
+
## 2.2 å端ę„å£å¼ēØ
|
|
16
|
+
|
|
17
|
+
### Controllerä½ē½®
|
|
18
|
+
```
|
|
19
|
+
coffee-liberica-end/
|
|
20
|
+
āāā facade/liberica-facade-enterprise/
|
|
21
|
+
āāā src/main/java/com/newpeak/liberica/facade/enterprise/controller/sales/
|
|
22
|
+
āāā MasterUomController.java
|
|
23
|
+
āāā listUoms(@GetResource(path = "/page"))
|
|
24
|
+
āāā public ResponseData<PageResult<MasterUomResponse>> listUoms(
|
|
25
|
+
@ParameterObject MasterUomRequest request
|
|
26
|
+
)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Request DTOä½ē½®
|
|
30
|
+
```
|
|
31
|
+
coffee-liberica-end/
|
|
32
|
+
āāā business/liberica-business-uom/uom-api/src/main/java/com/newpeak/liberica/uom/api/pojo/request/MasterUomRequest.java
|
|
33
|
+
āāā pageNo: Long (å锵锵ē ļ¼ä»0å¼å§)
|
|
34
|
+
āāā pageSize: Long (å锵大å°)
|
|
35
|
+
āāā uomCode: String (č®”éåä½ē¼ē )
|
|
36
|
+
āāā uomName: String (č®”éåä½åē§°)
|
|
37
|
+
āāā statusFlag: Integer (ē¶ęļ¼1=åÆēØļ¼2=ē¦ēØ)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Response DTOä½ē½®
|
|
41
|
+
```
|
|
42
|
+
coffee-liberica-end/
|
|
43
|
+
āāā business/liberica-business-uom/uom-api/src/main/java/com/newpeak/liberica/uom/api/pojo/response/MasterUomResponse.java
|
|
44
|
+
āāā uomId: String
|
|
45
|
+
āāā uomCode: String
|
|
46
|
+
āāā uomName: String
|
|
47
|
+
āāā uomFractionPlaces: Integer
|
|
48
|
+
āāā statusFlag: Integer (1=åÆēØļ¼2=ē¦ēØ)
|
|
49
|
+
āāā remark: String
|
|
50
|
+
āāā createTime: String
|
|
51
|
+
āāā updateTime: String
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### å锵å
č£
åØ
|
|
55
|
+
```
|
|
56
|
+
cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult
|
|
57
|
+
āāā totalRows: long
|
|
58
|
+
āāā pageSize: long
|
|
59
|
+
āāā pageNo: long
|
|
60
|
+
āāā rows: List<MasterUomResponse>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## 2.3 CLIåę°č®¾č®”
|
|
64
|
+
|
|
65
|
+
### å½ä»¤ē»ę
|
|
66
|
+
```
|
|
67
|
+
barista liberica uoms list [options]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### å
Øå±é锹
|
|
71
|
+
| é锹 | ē±»å | 诓ę |
|
|
72
|
+
|------|------|------|
|
|
73
|
+
| `--env` | string | ē®ę ēÆå¢(dev\|test\|prod-cn\|prod-jp) |
|
|
74
|
+
| `--tenant` | string | ē§ę·ä»£ē |
|
|
75
|
+
| `--json` | boolean | JSONč¾åŗ |
|
|
76
|
+
|
|
77
|
+
### å½ä»¤é锹
|
|
78
|
+
| é锹 | ēé锹 | ē±»å | åæ
唫 | é»č®¤å¼ | 诓ę | 对åŗDTOåꮵ |
|
|
79
|
+
|------|--------|------|------|--------|------|-------------|
|
|
80
|
+
| --page | -p | number | ⬠| 1 | 锵ē ļ¼ä»1å¼å§ļ¼ | pageNo (转ę¢ļ¼CLI锵ē -1) |
|
|
81
|
+
| --size | -s | number | ⬠| 20 | ęÆé”µę”ę° | pageSize |
|
|
82
|
+
| --status | ā | string | ⬠| - | ē¶ęļ¼enable/disable | statusFlag (enable=1, disable=2) |
|
|
83
|
+
| --code | -c | string | ⬠| - | č®”éåä½ē¼ē | uomCode |
|
|
84
|
+
| --name | -n | string | ⬠| - | č®”éåä½åē§° | uomName |
|
|
85
|
+
| --keyword | -k | string | ⬠| - | ęē“¢å
³é®čÆļ¼ē¼ē /åē§°ļ¼ | uomCode/uomName |
|
|
86
|
+
|
|
87
|
+
## 2.4 åꮵę å°č”Ø
|
|
88
|
+
|
|
89
|
+
| CLIåę° | DTOåꮵ | ē±»åč½¬ę¢ | éŖčÆč§å |
|
|
90
|
+
|---------|---------|----------|----------|
|
|
91
|
+
| --page / -p | pageNo | numberāLongļ¼CLI锵ē -1 | >= 1 |
|
|
92
|
+
| --size / -s | pageSize | numberāLong | 1-100 |
|
|
93
|
+
| --status | statusFlag | stringāInteger | enable=1, disable=2 |
|
|
94
|
+
| --code / -c | uomCode | stringāString | - |
|
|
95
|
+
| --name / -n | uomName | stringāString | - |
|
|
96
|
+
| --keyword / -k | uomCode/uomName | stringāString | 樔ē³ę„询 |
|
|
97
|
+
|
|
98
|
+
## 2.5 é误ē å¼ēØ
|
|
99
|
+
|
|
100
|
+
### ExceptionEnumä½ē½®
|
|
101
|
+
```
|
|
102
|
+
coffee-liberica-end/
|
|
103
|
+
āāā business/liberica-business-uom/uom-api/src/main/java/com/newpeak/liberica/uom/api/exception/enums/MasterUomExceptionEnum.java
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### å·²ē„é误ē
|
|
107
|
+
| é误ē | é误ę¶ęÆ | 触åę”ä»¶ |
|
|
108
|
+
|--------|----------|----------|
|
|
109
|
+
| UOM_NOT_EXIST | č®”éåä½äøååØ | ę„询/ē¼č¾/å é¤ę¶IDäøååØ |
|
|
110
|
+
| UOM_CODE_DUPLICATE | č®”éåä½ē¼ē éå¤ | å建/ē¼č¾ę¶ē¼ē å·²ååØ |
|
|
111
|
+
|
|
112
|
+
## 2.6 ęéę£ę„
|
|
113
|
+
|
|
114
|
+
| ę£ę„锹 | ä½ē½® | 诓ę |
|
|
115
|
+
|--------|------|------|
|
|
116
|
+
| 注解 | ę éęé | ē»å½ēØę·åÆč®æé® |
|
|
117
|
+
|
|
118
|
+
## 2.7 å®ē°č¦ē¹
|
|
119
|
+
|
|
120
|
+
1. **å锵é»č®¤å¼**ļ¼page=1, size=20
|
|
121
|
+
2. **å锵转ę¢**ļ¼CLI使ēØ1-based锵ē ļ¼API使ēØ0-based锵ē ļ¼č°ēØę¶éå1ļ¼
|
|
122
|
+
3. **ęē“¢č”äøŗ**ļ¼keyword åę¶å¹é
uomCode å uomNameļ¼ęØ”ē³ę„询ļ¼
|
|
123
|
+
4. **ē¶ęę å°**ļ¼CLIåę° `enable`/`disable` ę å°å° API å¼ `1`/`2`
|
|
124
|
+
5. **ę ē»ęå¤ē**ļ¼čæå空å蔨ļ¼äøęåŗå¼åøø
|
|
125
|
+
6. **tenantIdę„ęŗ**ļ¼ę„čŖ JWT tokenļ¼ę é X-TENANT-ID headerļ¼
|
|
126
|
+
7. **č¾åŗę ¼å¼**ļ¼č”Øę ¼å½¢å¼å±ē¤ŗļ¼å锵俔ęÆåØåŗéØę¾ē¤ŗ
|
|
127
|
+
8. **APIč·Æå¾**ļ¼GET `/api/enterprise/sales/uom/page`
|
|
128
|
+
|
|
129
|
+
## 2.8 示ä¾ēØę³
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# é»č®¤å锵
|
|
133
|
+
barista liberica uoms list
|
|
134
|
+
|
|
135
|
+
# ęå®é”µē åęÆé”µę”ę°
|
|
136
|
+
barista liberica uoms list --page 2 --size 50
|
|
137
|
+
|
|
138
|
+
# ęē¶ęēé
|
|
139
|
+
barista liberica uoms list --status enable
|
|
140
|
+
|
|
141
|
+
# ęē¼ē ēé
|
|
142
|
+
barista liberica uoms list --code "kg"
|
|
143
|
+
|
|
144
|
+
# ęåē§°ęē“¢
|
|
145
|
+
barista liberica uoms list --name "åå
"
|
|
146
|
+
|
|
147
|
+
# å
³é®čÆęē“¢
|
|
148
|
+
barista liberica uoms list --keyword "å
"
|
|
149
|
+
|
|
150
|
+
# ē»åēé
|
|
151
|
+
barista liberica uoms list --page 1 --size 10 --status enable --keyword "kg"
|
|
152
|
+
|
|
153
|
+
# JSON č¾åŗļ¼ä¾æäŗčę¬å¤ēļ¼
|
|
154
|
+
barista liberica uoms list --page 1 --size 20 --json
|
|
155
|
+
```
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# barista liberica uoms update
|
|
2
|
+
|
|
3
|
+
ę“ę°č®”éåä½äæ”ęÆć
|
|
4
|
+
|
|
5
|
+
## 2.1 å½ä»¤å
ę°ę®
|
|
6
|
+
|
|
7
|
+
| åꮵ | å¼ |
|
|
8
|
+
|------|-----|
|
|
9
|
+
| å®ę“å½ä»¤ | `barista liberica uoms update <uom-id>` |
|
|
10
|
+
| åč½ęčæ° | ę“ę°č®”éåä½äæ”ęÆ |
|
|
11
|
+
| HTTPę¹ę³ | POST |
|
|
12
|
+
| ęÆå¦éč¦č®¤čÆ | ā
ęÆ |
|
|
13
|
+
| ęÆå¦ęÆędry-run | ā
ęÆ |
|
|
14
|
+
|
|
15
|
+
## 2.2 å端ę„å£å¼ēØ
|
|
16
|
+
|
|
17
|
+
### Controllerä½ē½®
|
|
18
|
+
```
|
|
19
|
+
coffee-liberica-end/
|
|
20
|
+
āāā facade/liberica-facade-enterprise/
|
|
21
|
+
āāā src/main/java/com/newpeak/liberica/facade/enterprise/controller/sales/
|
|
22
|
+
āāā MasterUomController.java
|
|
23
|
+
āāā updateUom(@PostResource(path = "/edit"))
|
|
24
|
+
āāā public ResponseData<MasterUomResponse> updateUom(
|
|
25
|
+
@RequestBody @Validated MasterUomRequest request
|
|
26
|
+
)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Request DTOä½ē½®
|
|
30
|
+
```
|
|
31
|
+
coffee-liberica-end/
|
|
32
|
+
āāā business/liberica-business-uom/uom-api/src/main/java/com/newpeak/liberica/uom/api/pojo/request/MasterUomRequest.java
|
|
33
|
+
āāā uomId: String (@NotBlank)
|
|
34
|
+
āāā uomCode: String (@NotBlank)
|
|
35
|
+
āāā uomName: String (@NotBlank)
|
|
36
|
+
āāā uomFractionPlaces: Integer (default: 2)
|
|
37
|
+
āāā statusFlag: Integer (1=åÆēØ, 2=ē¦ēØ)
|
|
38
|
+
āāā remark: String (optional)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Response DTOä½ē½®
|
|
42
|
+
```
|
|
43
|
+
coffee-liberica-end/
|
|
44
|
+
āāā business/liberica-business-uom/uom-api/src/main/java/com/newpeak/liberica/uom/api/pojo/response/MasterUomResponse.java
|
|
45
|
+
āāā uomId: String
|
|
46
|
+
āāā uomCode: String
|
|
47
|
+
āāā uomName: String
|
|
48
|
+
āāā uomFractionPlaces: Integer
|
|
49
|
+
āāā statusFlag: Integer
|
|
50
|
+
āāā remark: String
|
|
51
|
+
āāā createTime: String
|
|
52
|
+
āāā updateTime: String
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 2.3 CLIåę°č®¾č®”
|
|
56
|
+
|
|
57
|
+
### å½ä»¤ē»ę
|
|
58
|
+
```
|
|
59
|
+
barista liberica uoms update <uom-id> [options]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### å
Øå±é锹
|
|
63
|
+
| é锹 | ē±»å | 诓ę |
|
|
64
|
+
|------|------|------|
|
|
65
|
+
| `--env` | string | ē®ę ēÆå¢(dev\|test\|prod-cn\|prod-jp) |
|
|
66
|
+
| `--tenant` | string | ē§ę·ä»£ē |
|
|
67
|
+
| `--dry-run` | boolean | é¢č§ęØ”å¼ |
|
|
68
|
+
| `--json` | boolean | JSONč¾åŗ |
|
|
69
|
+
|
|
70
|
+
### ä½ē½®åę°
|
|
71
|
+
| åę° | ē±»å | åæ
唫 | 诓ę |
|
|
72
|
+
|------|------|------|------|
|
|
73
|
+
| uom-id | string | ā
| č®”éåä½ID |
|
|
74
|
+
|
|
75
|
+
### å½ä»¤é锹
|
|
76
|
+
| é锹 | ēé锹 | ē±»å | åæ
唫 | é»č®¤å¼ | 诓ę | 对åŗDTOåꮵ |
|
|
77
|
+
|------|--------|------|------|--------|------|-------------|
|
|
78
|
+
| --uom-id | -i | string | ⬠| - | č®”éåä½IDļ¼äøä½ē½®åę°äŗę„ļ¼ | uomId |
|
|
79
|
+
| --code | -c | string | ā
| - | č®”éåä½ē¼ē | uomCode |
|
|
80
|
+
| --name | -n | string | ā
| - | č®”éåä½åē§° | uomName |
|
|
81
|
+
| --fraction-places | -f | number | ⬠| 2 | å°ę°ä½ę° | uomFractionPlaces |
|
|
82
|
+
| --remark | -r | string | ⬠| - | å¤ę³Ø | remark |
|
|
83
|
+
|
|
84
|
+
## 2.4 åꮵę å°č”Ø
|
|
85
|
+
|
|
86
|
+
| CLIåę° | DTOåꮵ | ē±»åč½¬ę¢ | éŖčÆč§å |
|
|
87
|
+
|---------|---------|----------|----------|
|
|
88
|
+
| uom-id (ä½ē½®åę°) | uomId | stringāString | @NotBlank |
|
|
89
|
+
| --uom-id / -i | uomId | stringāString | @NotBlank |
|
|
90
|
+
| --code / -c | uomCode | stringāString | @NotBlank, max=255 |
|
|
91
|
+
| --name / -n | uomName | stringāString | @NotBlank, max=255 |
|
|
92
|
+
| --fraction-places / -f | uomFractionPlaces | numberāInteger | >= 0, <= 10 |
|
|
93
|
+
| --remark / -r | remark | stringāString | max=500 |
|
|
94
|
+
|
|
95
|
+
## 2.5 é误ē å¼ēØ
|
|
96
|
+
|
|
97
|
+
### ExceptionEnumä½ē½®
|
|
98
|
+
```
|
|
99
|
+
coffee-liberica-end/
|
|
100
|
+
āāā business/liberica-business-uom/uom-api/src/main/java/com/newpeak/liberica/uom/api/exception/enums/MasterUomExceptionEnum.java
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### å·²ē„é误ē
|
|
104
|
+
| é误ē | é误ę¶ęÆ | 触åę”ä»¶ |
|
|
105
|
+
|--------|----------|----------|
|
|
106
|
+
| UOM_NOT_EXIST | č®”éåä½äøååØ | UOMäøååØ |
|
|
107
|
+
| UOM_CODE_DUPLICATE | č®”éåä½ē¼ē éå¤ | ē¼ē éå¤ |
|
|
108
|
+
| UOM_CODE_EMPTY | č®”éåä½ē¼ē äøč½äøŗē©ŗ | ē¼ē 为空 |
|
|
109
|
+
| UOM_NAME_EMPTY | č®”éåä½åē§°äøč½äøŗē©ŗ | å称为空 |
|
|
110
|
+
|
|
111
|
+
## 2.6 ęéę£ę„
|
|
112
|
+
|
|
113
|
+
| ę£ę„锹 | ä½ē½® | 诓ę |
|
|
114
|
+
|--------|------|------|
|
|
115
|
+
| 注解 | MasterUomController.java | éč¦ `master_uom:edit` ęé |
|
|
116
|
+
|
|
117
|
+
## 2.7 å®ē°č¦ē¹
|
|
118
|
+
|
|
119
|
+
1. **IDåæ
唫**ļ¼uomIdäøŗåæ
唫åę°ļ¼ä½ē½®åę°ę --uom-id é锹ļ¼
|
|
120
|
+
2. **åæ
唫åꮵ**ļ¼uomCode å uomName äøŗåæ
唫åę°ļ¼éåøøéč¦å
č·åē°ęå¼åäæ®ę¹ļ¼
|
|
121
|
+
3. **dry-run ęÆę**ļ¼ęÆę `--dry-run` é¢č§ęØ”å¼ļ¼ę¾ē¤ŗå°č¦ę“ę°ēåꮵåå
|
|
122
|
+
4. **å®ę“ę“ę°**ļ¼å端åÆč½ęÆå®ę“ę“ę°ęØ”å¼ļ¼éč¦ęä¾ęęåꮵå¼
|
|
123
|
+
5. **建议ēØę³**ļ¼å
ę§č” `barista liberica uoms get <id>` č·åå½åå¼ļ¼åę“ę°ęå®åꮵ
|
|
124
|
+
6. **APIč·Æå¾**ļ¼POST `/api/enterprise/sales/uom/edit`
|
|
125
|
+
7. **ęåååŗ**ļ¼čæåę“ę°åēUOM详ę
|
|
126
|
+
|
|
127
|
+
## 2.8 示ä¾ēØę³
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# ę“ę°č®”éåä½ļ¼éčæä½ē½®åę°ļ¼
|
|
131
|
+
barista liberica uoms update "1234567890123456789" --code "kg" --name "åå
"
|
|
132
|
+
|
|
133
|
+
# ę“ę°č®”éåä½ļ¼éčæé锹åę°ļ¼
|
|
134
|
+
barista liberica uoms update --uom-id "1234567890123456789" --code "kg" --name "åå
"
|
|
135
|
+
barista liberica uoms update -i "1234567890123456789" -c "kg" -n "åå
"
|
|
136
|
+
|
|
137
|
+
# ę“ę°å°ę°ä½ę°
|
|
138
|
+
barista liberica uoms update "1234567890123456789" --code "m" --name "ē±³" --fraction-places 3
|
|
139
|
+
|
|
140
|
+
# ę“ę°å¤ę³Ø
|
|
141
|
+
barista liberica uoms update "1234567890123456789" --code "pcs" --name "ä»¶" --remark "ę°ēå¤ę³Ø"
|
|
142
|
+
|
|
143
|
+
# é¢č§ęØ”å¼ļ¼dry-runļ¼
|
|
144
|
+
barista liberica uoms update "1234567890123456789" --code "box" --name "ē®±" --dry-run
|
|
145
|
+
|
|
146
|
+
# JSON č¾åŗ
|
|
147
|
+
barista liberica uoms update "1234567890123456789" --code "kg" --name "åå
" --json
|
|
148
|
+
```
|
package/package.json
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@newpeak/barista-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "AI Tools CLI for Liberica and Arabica services",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"bin":
|
|
7
|
-
"barista": "./bin/barista.js"
|
|
8
|
-
},
|
|
6
|
+
"bin": "./bin/barista",
|
|
9
7
|
"scripts": {
|
|
10
8
|
"build": "tsc",
|
|
11
9
|
"dev": "tsc --watch",
|
|
@@ -90,6 +90,12 @@ export function createLibericaAuthCommand(): Command {
|
|
|
90
90
|
|
|
91
91
|
await configManager.setTenant(resolvedTenant);
|
|
92
92
|
|
|
93
|
+
const indexInfo = await apiClient.getUserIndexInfo(environment, resolvedTenant);
|
|
94
|
+
if (!indexInfo.success) {
|
|
95
|
+
console.error(chalk.yellow(`\nā Warning: Failed to refresh permissions cache: ${indexInfo.error?.message || 'Unknown error'}`));
|
|
96
|
+
console.error(chalk.gray(' You may need to relogin to refresh permissions.\n'));
|
|
97
|
+
}
|
|
98
|
+
|
|
93
99
|
console.log(chalk.green('\nā Login successful'));
|
|
94
100
|
if (response.data.expiresAt) {
|
|
95
101
|
console.log(chalk.gray(` Token expires: ${response.data.expiresAt}`));
|
|
@@ -8,6 +8,9 @@ import { createOrgsCommand } from './orgs/index.js';
|
|
|
8
8
|
import { createPositionsCommand } from './positions/index.js';
|
|
9
9
|
import { createRolesCommand } from './roles/index.js';
|
|
10
10
|
import { createClientsCommand } from './clients/index.js';
|
|
11
|
+
import { createSuppliersCommand } from './suppliers/index.js';
|
|
12
|
+
import { createMaterialsCommand } from './materials/index.js';
|
|
13
|
+
import { createUomsCommand } from './uoms/index.js';
|
|
11
14
|
|
|
12
15
|
export function createLibericaCommand(): Command {
|
|
13
16
|
const libericaCommand = new Command('liberica');
|
|
@@ -21,6 +24,9 @@ export function createLibericaCommand(): Command {
|
|
|
21
24
|
libericaCommand.addCommand(createPositionsCommand());
|
|
22
25
|
libericaCommand.addCommand(createRolesCommand());
|
|
23
26
|
libericaCommand.addCommand(createClientsCommand());
|
|
27
|
+
libericaCommand.addCommand(createSuppliersCommand());
|
|
28
|
+
libericaCommand.addCommand(createMaterialsCommand());
|
|
29
|
+
libericaCommand.addCommand(createUomsCommand());
|
|
24
30
|
|
|
25
31
|
libericaCommand.action(() => {
|
|
26
32
|
console.log(chalk.bold('\nā Liberica Commands\n'));
|
|
@@ -32,6 +38,8 @@ export function createLibericaCommand(): Command {
|
|
|
32
38
|
console.log(' Use "barista liberica products <command>" for product operations');
|
|
33
39
|
console.log(' Use "barista liberica production <command>" for production operations');
|
|
34
40
|
console.log(' Use "barista liberica clients <command>" for client management');
|
|
41
|
+
console.log(' Use "barista liberica materials <command>" for material management');
|
|
42
|
+
console.log(' Use "barista liberica uoms <command>" for unit of measure management');
|
|
35
43
|
console.log('\n Run "barista liberica <command> --help" for more details\n');
|
|
36
44
|
});
|
|
37
45
|
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import { apiClient } from '../../../core/api/client.js';
|
|
5
|
+
import { configManager } from '../../../core/config/manager.js';
|
|
6
|
+
import { MaterialRequest } from '../../../types/material.js';
|
|
7
|
+
|
|
8
|
+
function formatTable(data: MaterialRequest): string {
|
|
9
|
+
const lines: string[] = [];
|
|
10
|
+
lines.push(` ${chalk.gray('Name:')} ${data.materialName || '(not set)'}`);
|
|
11
|
+
lines.push(` ${chalk.gray('No:')} ${data.materialNo || '(not set)'}`);
|
|
12
|
+
lines.push(` ${chalk.gray('Code:')} ${data.materialCode}`);
|
|
13
|
+
lines.push(` ${chalk.gray('Class:')} ${data.materialClass || '(not set)'}`);
|
|
14
|
+
if (data.materialType) lines.push(` ${chalk.gray('Type:')} ${data.materialType}`);
|
|
15
|
+
if (data.materialUnit) lines.push(` ${chalk.gray('Unit:')} ${data.materialUnit}`);
|
|
16
|
+
return lines.join('\n');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function createMaterialsCreateCommand(): Command {
|
|
20
|
+
const cmd = new Command('create');
|
|
21
|
+
cmd.description('Create a new material (auto-generates material code)');
|
|
22
|
+
|
|
23
|
+
cmd
|
|
24
|
+
.option('-n, --name <name>', 'Material name (required)')
|
|
25
|
+
.option('-c, --class <class>', 'Material class (required)')
|
|
26
|
+
.option('--no <no>', 'Material number (required)')
|
|
27
|
+
.option('--type <type>', 'Material type')
|
|
28
|
+
.option('-u, --unit <unit>', 'Material unit')
|
|
29
|
+
.option('--dry-run', 'Preview without making API call')
|
|
30
|
+
.option('--json', 'Output as JSON');
|
|
31
|
+
|
|
32
|
+
cmd.action(async () => {
|
|
33
|
+
const context = configManager.getCurrentContext();
|
|
34
|
+
const opts = cmd.opts();
|
|
35
|
+
|
|
36
|
+
let name = opts.name as string | undefined;
|
|
37
|
+
let materialNo = (opts.no as string | undefined) || (opts['no'] as string | undefined);
|
|
38
|
+
let materialClass = opts.class as string | undefined;
|
|
39
|
+
const materialType = opts.type as string | undefined;
|
|
40
|
+
const materialUnit = opts.unit as string | undefined;
|
|
41
|
+
const dryRun = opts.dryRun === true;
|
|
42
|
+
const outputJson = (opts as any).json === true || process.argv.includes('--json');
|
|
43
|
+
|
|
44
|
+
if (!name) {
|
|
45
|
+
const { inputName } = await inquirer.prompt([
|
|
46
|
+
{
|
|
47
|
+
type: 'input',
|
|
48
|
+
name: 'inputName',
|
|
49
|
+
message: 'Enter material name:',
|
|
50
|
+
validate: (input: string) => input.trim().length > 0 || 'Material name is required',
|
|
51
|
+
},
|
|
52
|
+
]);
|
|
53
|
+
name = inputName;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (!materialClass) {
|
|
57
|
+
const { inputClass } = await inquirer.prompt([
|
|
58
|
+
{
|
|
59
|
+
type: 'input',
|
|
60
|
+
name: 'inputClass',
|
|
61
|
+
message: 'Enter material class:',
|
|
62
|
+
validate: (input: string) => input.trim().length > 0 || 'Material class is required',
|
|
63
|
+
},
|
|
64
|
+
]);
|
|
65
|
+
materialClass = inputClass;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (!materialNo) {
|
|
69
|
+
const { inputNo } = await inquirer.prompt([
|
|
70
|
+
{
|
|
71
|
+
type: 'input',
|
|
72
|
+
name: 'inputNo',
|
|
73
|
+
message: 'Enter material number:',
|
|
74
|
+
validate: (input: string) => input.trim().length > 0 || 'Material number is required',
|
|
75
|
+
},
|
|
76
|
+
]);
|
|
77
|
+
materialNo = inputNo;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const codeResponse = await apiClient.getCodeByType(context.environment, context.tenant, 'TenantMaterialCode');
|
|
81
|
+
if (!codeResponse.success || !codeResponse.data) {
|
|
82
|
+
const errMsg = codeResponse.error?.message || 'Failed to generate material code';
|
|
83
|
+
if (outputJson) {
|
|
84
|
+
console.log(JSON.stringify({ success: false, error: { code: 'CODE_GENERATION_ERROR', message: errMsg } }));
|
|
85
|
+
} else {
|
|
86
|
+
console.error(chalk.red(`\nā Failed to generate material code: ${errMsg}\n`));
|
|
87
|
+
}
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
const materialCode = codeResponse.data;
|
|
91
|
+
|
|
92
|
+
const data: MaterialRequest = {
|
|
93
|
+
materialName: name!,
|
|
94
|
+
materialNo: materialNo!,
|
|
95
|
+
materialCode: materialCode,
|
|
96
|
+
materialClass: materialClass!,
|
|
97
|
+
materialType: materialType,
|
|
98
|
+
materialUnit: materialUnit,
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
if (dryRun) {
|
|
102
|
+
if (outputJson) {
|
|
103
|
+
console.log(JSON.stringify({ success: true, dryRun: true, data }));
|
|
104
|
+
} else {
|
|
105
|
+
console.log(chalk.bold('\nš Dry-Run Mode: No changes will be made\n'));
|
|
106
|
+
console.log(' Material to be created:');
|
|
107
|
+
console.log(formatTable(data));
|
|
108
|
+
console.log();
|
|
109
|
+
}
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (!outputJson) {
|
|
114
|
+
console.log(chalk.bold('\nš Creating Material\n'));
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const response = await apiClient.createMaterial(context.environment, context.tenant, data);
|
|
118
|
+
|
|
119
|
+
if (!response.success) {
|
|
120
|
+
const errorMsg = response.error?.message || 'Failed to create material';
|
|
121
|
+
const errorCode = response.error?.code || 'CREATE_MATERIAL_ERROR';
|
|
122
|
+
if (outputJson) {
|
|
123
|
+
console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
|
|
124
|
+
} else {
|
|
125
|
+
console.error(chalk.red(`\nā Failed to create material: ${errorMsg}`));
|
|
126
|
+
if (response.error?.code) {
|
|
127
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
128
|
+
}
|
|
129
|
+
console.error();
|
|
130
|
+
}
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (response.success) {
|
|
135
|
+
const material = response.data as {
|
|
136
|
+
materialId?: number;
|
|
137
|
+
materialNo?: string;
|
|
138
|
+
materialCode?: string;
|
|
139
|
+
materialName?: string;
|
|
140
|
+
materialClass?: string;
|
|
141
|
+
materialType?: string;
|
|
142
|
+
materialUnit?: string;
|
|
143
|
+
statusFlag?: number;
|
|
144
|
+
createTime?: string;
|
|
145
|
+
} | undefined;
|
|
146
|
+
|
|
147
|
+
if (outputJson) {
|
|
148
|
+
console.log(JSON.stringify({ success: true, data: material }));
|
|
149
|
+
} else {
|
|
150
|
+
console.log(chalk.green('ā Material created successfully\n'));
|
|
151
|
+
if (material?.materialId) console.log(` ${chalk.gray('Material ID:')} ${chalk.green(String(material.materialId))}`);
|
|
152
|
+
if (material?.materialNo) console.log(` ${chalk.gray('No:')} ${material.materialNo}`);
|
|
153
|
+
if (material?.materialName) console.log(` ${chalk.gray('Name:')} ${material.materialName}`);
|
|
154
|
+
if (material?.materialCode) console.log(` ${chalk.gray('Code:')} ${material.materialCode}`);
|
|
155
|
+
if (material?.materialClass) console.log(` ${chalk.gray('Class:')} ${material.materialClass}`);
|
|
156
|
+
if (material?.materialType) console.log(` ${chalk.gray('Type:')} ${material.materialType}`);
|
|
157
|
+
if (material?.materialUnit) console.log(` ${chalk.gray('Unit:')} ${material.materialUnit}`);
|
|
158
|
+
if (material?.statusFlag !== undefined) {
|
|
159
|
+
const statusText = material.statusFlag === 1 ? 'Enabled' : 'Disabled';
|
|
160
|
+
console.log(` ${chalk.gray('Status:')} ${chalk.green(statusText)}`);
|
|
161
|
+
}
|
|
162
|
+
console.log();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
return cmd;
|
|
168
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Command } 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 { Material } from '../../../types/material.js';
|
|
7
|
+
|
|
8
|
+
export function createMaterialDeleteCommand(): Command {
|
|
9
|
+
const deleteCommand = new Command('delete');
|
|
10
|
+
deleteCommand
|
|
11
|
+
.description('Delete a material')
|
|
12
|
+
.argument('<materialId>', 'Material ID')
|
|
13
|
+
.option('--force', 'Skip confirmation and delete directly')
|
|
14
|
+
.option('--json', 'Output as JSON')
|
|
15
|
+
.action(async (materialId: string, options: Record<string, unknown>) => {
|
|
16
|
+
const context = configManager.getCurrentContext();
|
|
17
|
+
const environment = context.environment as Environment;
|
|
18
|
+
const tenant = context.tenant;
|
|
19
|
+
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
(options as any).json = process.argv.includes('--json');
|
|
22
|
+
const jsonOutput = options.json === true;
|
|
23
|
+
|
|
24
|
+
if (!jsonOutput) {
|
|
25
|
+
console.log(chalk.bold(`\nšļø Delete Material (${environment})\n`));
|
|
26
|
+
console.log(chalk.gray(` Material ID: ${materialId}`));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
let material: Material | undefined;
|
|
30
|
+
try {
|
|
31
|
+
const materialResponse = await apiClient.getMaterial(environment, tenant, materialId);
|
|
32
|
+
if (!materialResponse.success || !materialResponse.data || !('materialId' in materialResponse.data)) {
|
|
33
|
+
const errMsg = `Material not found: ${materialId}`;
|
|
34
|
+
if (jsonOutput) {
|
|
35
|
+
console.log(JSON.stringify({ success: false, error: { code: 'NOT_FOUND', message: errMsg } }));
|
|
36
|
+
} else {
|
|
37
|
+
console.error(chalk.red(`\nā ${errMsg}\n`));
|
|
38
|
+
}
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
material = materialResponse.data as Material;
|
|
42
|
+
} catch (error) {
|
|
43
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
44
|
+
if (jsonOutput) {
|
|
45
|
+
console.log(JSON.stringify({ success: false, error: { code: 'FETCH_ERROR', message: `Failed to fetch material: ${errMsg}` } }));
|
|
46
|
+
} else {
|
|
47
|
+
console.error(chalk.red(`\nā Failed to fetch material: ${errMsg}\n`));
|
|
48
|
+
}
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (!jsonOutput) {
|
|
53
|
+
console.log(chalk.gray(` Name: ${material.materialName}`));
|
|
54
|
+
console.log(chalk.gray(` Code: ${material.materialCode}`));
|
|
55
|
+
if (material.materialClass) {
|
|
56
|
+
console.log(chalk.gray(` Class: ${material.materialClass}`));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (!options.force) {
|
|
61
|
+
if (jsonOutput) {
|
|
62
|
+
console.log(JSON.stringify({ success: true, dryRun: true, material }));
|
|
63
|
+
} else {
|
|
64
|
+
console.log(chalk.cyan('\nš Dry-Run Mode: No actual deletion will be made\n'));
|
|
65
|
+
console.log(chalk.yellow(' To delete, add: --force\n'));
|
|
66
|
+
}
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
try {
|
|
71
|
+
const response = await apiClient.deleteMaterial(environment, tenant, materialId);
|
|
72
|
+
|
|
73
|
+
if (response.success) {
|
|
74
|
+
if (jsonOutput) {
|
|
75
|
+
console.log(JSON.stringify({ success: true, materialId, name: material.materialName }));
|
|
76
|
+
} else {
|
|
77
|
+
console.log(chalk.green(`\nā Material "${material.materialName}" (ID: ${materialId}) deleted\n`));
|
|
78
|
+
}
|
|
79
|
+
} else {
|
|
80
|
+
const errorMsg = response.error?.message || 'Unknown error';
|
|
81
|
+
const errorCode = response.error?.code || 'DELETE_ERROR';
|
|
82
|
+
if (jsonOutput) {
|
|
83
|
+
console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
|
|
84
|
+
} else {
|
|
85
|
+
console.error(chalk.red(`\nā Failed to delete material: ${errorMsg}`));
|
|
86
|
+
if (response.error?.code) {
|
|
87
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
88
|
+
}
|
|
89
|
+
console.error();
|
|
90
|
+
}
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
} catch (error) {
|
|
94
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
95
|
+
if (jsonOutput) {
|
|
96
|
+
console.log(JSON.stringify({ success: false, error: { code: 'ERROR', message: errMsg } }));
|
|
97
|
+
} else {
|
|
98
|
+
console.error(chalk.red(`\nā Error: ${errMsg}\n`));
|
|
99
|
+
}
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
return deleteCommand;
|
|
105
|
+
}
|