@newpeak/barista-cli 0.1.4 ā 0.1.6
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/currency/create.d.ts +3 -0
- package/dist/commands/liberica/currency/create.d.ts.map +1 -0
- package/dist/commands/liberica/currency/create.js +168 -0
- package/dist/commands/liberica/currency/create.js.map +1 -0
- package/dist/commands/liberica/currency/delete.d.ts +3 -0
- package/dist/commands/liberica/currency/delete.d.ts.map +1 -0
- package/dist/commands/liberica/currency/delete.js +122 -0
- package/dist/commands/liberica/currency/delete.js.map +1 -0
- package/dist/commands/liberica/currency/disable.d.ts +3 -0
- package/dist/commands/liberica/currency/disable.d.ts.map +1 -0
- package/dist/commands/liberica/currency/disable.js +145 -0
- package/dist/commands/liberica/currency/disable.js.map +1 -0
- package/dist/commands/liberica/currency/enable.d.ts +3 -0
- package/dist/commands/liberica/currency/enable.d.ts.map +1 -0
- package/dist/commands/liberica/currency/enable.js +125 -0
- package/dist/commands/liberica/currency/enable.js.map +1 -0
- package/dist/commands/liberica/currency/get.d.ts +3 -0
- package/dist/commands/liberica/currency/get.d.ts.map +1 -0
- package/dist/commands/liberica/currency/get.js +80 -0
- package/dist/commands/liberica/currency/get.js.map +1 -0
- package/dist/commands/liberica/currency/index.d.ts +3 -0
- package/dist/commands/liberica/currency/index.d.ts.map +1 -0
- package/dist/commands/liberica/currency/index.js +21 -0
- package/dist/commands/liberica/currency/index.js.map +1 -0
- package/dist/commands/liberica/currency/list.d.ts +3 -0
- package/dist/commands/liberica/currency/list.d.ts.map +1 -0
- package/dist/commands/liberica/currency/list.js +106 -0
- package/dist/commands/liberica/currency/list.js.map +1 -0
- package/dist/commands/liberica/currency/update.d.ts +3 -0
- package/dist/commands/liberica/currency/update.d.ts.map +1 -0
- package/dist/commands/liberica/currency/update.js +123 -0
- package/dist/commands/liberica/currency/update.js.map +1 -0
- package/dist/commands/liberica/index.d.ts.map +1 -1
- package/dist/commands/liberica/index.js +11 -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 +34 -0
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +650 -0
- package/dist/core/api/client.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/types/currency.d.ts +74 -0
- package/dist/types/currency.d.ts.map +1 -0
- package/dist/types/currency.js +2 -0
- package/dist/types/currency.js.map +1 -0
- 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/COMMAND_DESIGN_SPEC.md +42 -13
- package/docs/commands/liberica/currency/create.md +145 -0
- package/docs/commands/liberica/currency/delete.md +121 -0
- package/docs/commands/liberica/currency/disable.md +119 -0
- package/docs/commands/liberica/currency/enable.md +115 -0
- package/docs/commands/liberica/currency/get.md +118 -0
- package/docs/commands/liberica/currency/list.md +149 -0
- package/docs/commands/liberica/currency/update.md +141 -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/currency/create.ts +183 -0
- package/src/commands/liberica/currency/delete.ts +124 -0
- package/src/commands/liberica/currency/disable.ts +147 -0
- package/src/commands/liberica/currency/enable.ts +128 -0
- package/src/commands/liberica/currency/get.ts +91 -0
- package/src/commands/liberica/currency/index.ts +23 -0
- package/src/commands/liberica/currency/list.ts +140 -0
- package/src/commands/liberica/currency/update.ts +129 -0
- package/src/commands/liberica/index.ts +11 -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 +878 -57
- package/src/index.ts +1 -1
- package/src/types/currency.ts +90 -0
- 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.6",
|
|
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}`));
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import { configManager } from '../../../core/config/manager.js';
|
|
5
|
+
import { apiClient } from '../../../core/api/client.js';
|
|
6
|
+
import { CreateCurrencyRequest, CurrencyDefault } from '../../../types/currency.js';
|
|
7
|
+
|
|
8
|
+
function formatTable(data: CreateCurrencyRequest): string {
|
|
9
|
+
const lines: string[] = [];
|
|
10
|
+
lines.push(` ${chalk.gray('Code:')} ${data.currencyCode || '(not set)'}`);
|
|
11
|
+
lines.push(` ${chalk.gray('Name:')} ${data.currencyName || '(auto-filled from API)'}`);
|
|
12
|
+
lines.push(` ${chalk.gray('Sign:')} ${data.currencySign || '(auto-filled from API)'}`);
|
|
13
|
+
if (data.currencyRate) lines.push(` ${chalk.gray('Rate:')} ${data.currencyRate}`);
|
|
14
|
+
if (data.unitPriceFractionPlaces !== undefined) lines.push(` ${chalk.gray('Unit Fraction Places:')} ${data.unitPriceFractionPlaces}`);
|
|
15
|
+
if (data.amountFractionPlaces !== undefined) lines.push(` ${chalk.gray('Amount Fraction Places:')} ${data.amountFractionPlaces}`);
|
|
16
|
+
if (data.remark) lines.push(` ${chalk.gray('Remark:')} ${data.remark}`);
|
|
17
|
+
return lines.join('\n');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function createCurrencyCreateCommand(): Command {
|
|
21
|
+
const cmd = new Command('create');
|
|
22
|
+
cmd.description('Create a new currency (auto-fills name and sign from getCurrencyDefault)');
|
|
23
|
+
|
|
24
|
+
cmd
|
|
25
|
+
.option('-c, --code <code>', 'Currency code (3 uppercase letters, e.g., CNY, USD)')
|
|
26
|
+
.option('-r, --rate <rate>', 'Currency exchange rate')
|
|
27
|
+
.option('--unit-fraction <places>', 'Unit price fraction places', '2')
|
|
28
|
+
.option('--amount-fraction <places>', 'Amount fraction places', '2')
|
|
29
|
+
.option('--remark <text>', 'Remark')
|
|
30
|
+
.option('--dry-run', 'Preview without making API call')
|
|
31
|
+
.option('--json', 'Output as JSON');
|
|
32
|
+
|
|
33
|
+
cmd.action(async () => {
|
|
34
|
+
const context = configManager.getCurrentContext();
|
|
35
|
+
const opts = cmd.opts();
|
|
36
|
+
|
|
37
|
+
const dryRun = opts.dryRun === true;
|
|
38
|
+
const outputJson = (opts as Record<string, unknown>).json === true || process.argv.includes('--json');
|
|
39
|
+
|
|
40
|
+
let code = opts.code as string | undefined;
|
|
41
|
+
|
|
42
|
+
if (!code) {
|
|
43
|
+
const { inputCode } = await inquirer.prompt([
|
|
44
|
+
{
|
|
45
|
+
type: 'input',
|
|
46
|
+
name: 'inputCode',
|
|
47
|
+
message: 'Enter currency code (3 letters, e.g., CNY, USD):',
|
|
48
|
+
validate: (input: string) => {
|
|
49
|
+
const trimmed = input.trim().toUpperCase();
|
|
50
|
+
if (!trimmed) return 'Currency code is required';
|
|
51
|
+
if (!/^[A-Z]{3}$/.test(trimmed)) return 'Currency code must be 3 uppercase letters (e.g., CNY, USD)';
|
|
52
|
+
return true;
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
]);
|
|
56
|
+
code = inputCode.trim().toUpperCase();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (!/^[A-Z]{3}$/.test(code!)) {
|
|
60
|
+
const errMsg = 'Currency code must be 3 uppercase letters (e.g., CNY, USD)';
|
|
61
|
+
if (outputJson) {
|
|
62
|
+
console.log(JSON.stringify({ success: false, error: { code: 'INVALID_CODE', message: errMsg } }));
|
|
63
|
+
} else {
|
|
64
|
+
console.error(chalk.red(`\nā ${errMsg}\n`));
|
|
65
|
+
}
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const validatedCode = code!;
|
|
70
|
+
|
|
71
|
+
if (!outputJson) {
|
|
72
|
+
console.log(chalk.bold('\nš Fetching currency default info...\n'));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const defaultResponse = await apiClient.getCurrencyDefault(context.environment, context.tenant, validatedCode);
|
|
76
|
+
|
|
77
|
+
if (!defaultResponse.success || !defaultResponse.data) {
|
|
78
|
+
const errMsg = defaultResponse.error?.message || `Failed to fetch currency default for ${validatedCode}`;
|
|
79
|
+
if (outputJson) {
|
|
80
|
+
console.log(JSON.stringify({ success: false, error: { code: 'DEFAULT_FETCH_ERROR', message: errMsg } }));
|
|
81
|
+
} else {
|
|
82
|
+
console.error(chalk.red(`\nā Failed to fetch currency default: ${errMsg}`));
|
|
83
|
+
if (defaultResponse.error?.code) {
|
|
84
|
+
console.error(chalk.gray(` Error code: ${defaultResponse.error.code}`));
|
|
85
|
+
}
|
|
86
|
+
console.error();
|
|
87
|
+
}
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const defaultData = defaultResponse.data as CurrencyDefault;
|
|
92
|
+
|
|
93
|
+
const rate = opts.rate as string | undefined;
|
|
94
|
+
const unitFractionPlaces = parseInt(opts.unitFraction as string, 10) || 2;
|
|
95
|
+
const amountFractionPlaces = parseInt(opts.amountFraction as string, 10) || 2;
|
|
96
|
+
const remark = opts.remark as string | undefined;
|
|
97
|
+
|
|
98
|
+
const data: CreateCurrencyRequest = {
|
|
99
|
+
currencyCode: validatedCode,
|
|
100
|
+
currencyName: defaultData.currencyName,
|
|
101
|
+
currencySign: defaultData.currencySign,
|
|
102
|
+
currencyRate: rate,
|
|
103
|
+
unitPriceFractionPlaces: unitFractionPlaces,
|
|
104
|
+
amountFractionPlaces: amountFractionPlaces,
|
|
105
|
+
remark: remark,
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
Object.keys(data).forEach(key => {
|
|
109
|
+
if (data[key as keyof CreateCurrencyRequest] === undefined) {
|
|
110
|
+
delete data[key as keyof CreateCurrencyRequest];
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
if (dryRun) {
|
|
115
|
+
if (outputJson) {
|
|
116
|
+
console.log(JSON.stringify({ success: true, dryRun: true, data }));
|
|
117
|
+
} else {
|
|
118
|
+
console.log(chalk.bold('\nš Dry-Run Mode: No changes will be made\n'));
|
|
119
|
+
console.log(' Currency to be created:');
|
|
120
|
+
console.log(formatTable(data));
|
|
121
|
+
console.log();
|
|
122
|
+
}
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (!outputJson) {
|
|
127
|
+
console.log(chalk.bold('\nš Creating Currency\n'));
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
const response = await apiClient.createCurrency(context.environment, context.tenant, data);
|
|
131
|
+
|
|
132
|
+
if (!response.success) {
|
|
133
|
+
const errorMsg = response.error?.message || 'Failed to create currency';
|
|
134
|
+
const errorCode = response.error?.code || 'CREATE_CURRENCY_ERROR';
|
|
135
|
+
if (outputJson) {
|
|
136
|
+
console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
|
|
137
|
+
} else {
|
|
138
|
+
console.error(chalk.red(`\nā Failed to create currency: ${errorMsg}`));
|
|
139
|
+
if (response.error?.code) {
|
|
140
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
141
|
+
}
|
|
142
|
+
console.error();
|
|
143
|
+
}
|
|
144
|
+
process.exit(1);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (response.success) {
|
|
148
|
+
const currency = response.data as {
|
|
149
|
+
currencyId?: string;
|
|
150
|
+
currencyCode?: string;
|
|
151
|
+
currencyName?: string;
|
|
152
|
+
currencySign?: string;
|
|
153
|
+
currencyRate?: string;
|
|
154
|
+
unitPriceFractionPlaces?: number;
|
|
155
|
+
amountFractionPlaces?: number;
|
|
156
|
+
statusFlag?: number;
|
|
157
|
+
remark?: string;
|
|
158
|
+
createTime?: string;
|
|
159
|
+
} | undefined;
|
|
160
|
+
|
|
161
|
+
if (outputJson) {
|
|
162
|
+
console.log(JSON.stringify({ success: true, data: currency }));
|
|
163
|
+
} else {
|
|
164
|
+
console.log(chalk.green('ā Currency created successfully\n'));
|
|
165
|
+
if (currency?.currencyId) console.log(` ${chalk.gray('Currency ID:')} ${chalk.green(String(currency.currencyId))}`);
|
|
166
|
+
if (currency?.currencyCode) console.log(` ${chalk.gray('Code:')} ${currency.currencyCode}`);
|
|
167
|
+
if (currency?.currencyName) console.log(` ${chalk.gray('Name:')} ${currency.currencyName}`);
|
|
168
|
+
if (currency?.currencySign) console.log(` ${chalk.gray('Sign:')} ${currency.currencySign}`);
|
|
169
|
+
if (currency?.currencyRate) console.log(` ${chalk.gray('Rate:')} ${currency.currencyRate}`);
|
|
170
|
+
if (currency?.unitPriceFractionPlaces !== undefined) console.log(` ${chalk.gray('Unit Fraction:')} ${currency.unitPriceFractionPlaces}`);
|
|
171
|
+
if (currency?.amountFractionPlaces !== undefined) console.log(` ${chalk.gray('Amount Fraction:')} ${currency.amountFractionPlaces}`);
|
|
172
|
+
if (currency?.statusFlag !== undefined) {
|
|
173
|
+
const statusText = currency.statusFlag === 1 ? 'Enabled' : 'Disabled';
|
|
174
|
+
console.log(` ${chalk.gray('Status:')} ${chalk.green(statusText)}`);
|
|
175
|
+
}
|
|
176
|
+
if (currency?.remark) console.log(` ${chalk.gray('Remark:')} ${currency.remark}`);
|
|
177
|
+
console.log();
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
return cmd;
|
|
183
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import { configManager } from '../../../core/config/manager.js';
|
|
5
|
+
import { apiClient } from '../../../core/api/client.js';
|
|
6
|
+
import { Environment } from '../../../types/index.js';
|
|
7
|
+
import { Currency } from '../../../types/currency.js';
|
|
8
|
+
|
|
9
|
+
export function createCurrencyDeleteCommand(): Command {
|
|
10
|
+
const deleteCommand = new Command('delete');
|
|
11
|
+
deleteCommand
|
|
12
|
+
.description('Delete a currency')
|
|
13
|
+
.argument('<currencyId>', 'Currency ID')
|
|
14
|
+
.option('--force', 'Skip confirmation and delete directly')
|
|
15
|
+
.option('--dry-run', 'Preview the operation without executing')
|
|
16
|
+
.option('--json', 'Output as JSON')
|
|
17
|
+
.action(async (currencyId: string, options: Record<string, unknown>) => {
|
|
18
|
+
const context = configManager.getCurrentContext();
|
|
19
|
+
const environment = context.environment as Environment;
|
|
20
|
+
const tenant = context.tenant;
|
|
21
|
+
const jsonOutput = options.json === true;
|
|
22
|
+
|
|
23
|
+
if (!jsonOutput) {
|
|
24
|
+
console.log(chalk.bold(`\nšļø Delete Currency (${environment})\n`));
|
|
25
|
+
console.log(chalk.gray(` Currency ID: ${currencyId}`));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (options.dryRun) {
|
|
29
|
+
if (jsonOutput) {
|
|
30
|
+
console.log(JSON.stringify({ success: true, dryRun: true, currencyId }));
|
|
31
|
+
} else {
|
|
32
|
+
console.log(chalk.cyan('\nš Dry-Run Mode: No actual API call will be made\n'));
|
|
33
|
+
console.log(chalk.gray(' This operation will delete the currency.'));
|
|
34
|
+
console.log();
|
|
35
|
+
}
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
let currency: Currency | undefined;
|
|
40
|
+
try {
|
|
41
|
+
const currencyResponse = await apiClient.getCurrency(environment, tenant, currencyId);
|
|
42
|
+
if (!currencyResponse.success || !currencyResponse.data || !('currencyId' in currencyResponse.data)) {
|
|
43
|
+
const errMsg = `Currency not found: ${currencyId}`;
|
|
44
|
+
if (jsonOutput) {
|
|
45
|
+
console.log(JSON.stringify({ success: false, error: { code: 'NOT_FOUND', message: errMsg } }));
|
|
46
|
+
} else {
|
|
47
|
+
console.error(chalk.red(`\nā ${errMsg}\n`));
|
|
48
|
+
}
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
currency = currencyResponse.data as Currency;
|
|
52
|
+
} catch (error) {
|
|
53
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
54
|
+
if (jsonOutput) {
|
|
55
|
+
console.log(JSON.stringify({ success: false, error: { code: 'FETCH_ERROR', message: `Failed to fetch currency: ${errMsg}` } }));
|
|
56
|
+
} else {
|
|
57
|
+
console.error(chalk.red(`\nā Failed to fetch currency: ${errMsg}\n`));
|
|
58
|
+
}
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (!options.force) {
|
|
63
|
+
if (!jsonOutput) {
|
|
64
|
+
console.log(chalk.gray(` Name: ${currency.currencyName}`));
|
|
65
|
+
console.log(chalk.gray(` Code: ${currency.currencyCode}`));
|
|
66
|
+
console.log(chalk.gray(` Sign: ${currency.currencySign}`));
|
|
67
|
+
if (currency.currencyRate !== undefined) {
|
|
68
|
+
console.log(chalk.gray(` Rate: ${currency.currencyRate}`));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const { confirm } = await inquirer.prompt([
|
|
73
|
+
{
|
|
74
|
+
type: 'confirm',
|
|
75
|
+
name: 'confirm',
|
|
76
|
+
message: `Delete currency "${currency.currencyName}" (${currency.currencyCode})? This action cannot be undone.`,
|
|
77
|
+
default: false,
|
|
78
|
+
},
|
|
79
|
+
]);
|
|
80
|
+
|
|
81
|
+
if (!confirm) {
|
|
82
|
+
if (!jsonOutput) {
|
|
83
|
+
console.log(chalk.gray('\n Operation cancelled.\n'));
|
|
84
|
+
}
|
|
85
|
+
process.exit(0);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
try {
|
|
90
|
+
const response = await apiClient.deleteCurrency(environment, tenant, currencyId);
|
|
91
|
+
|
|
92
|
+
if (response.success) {
|
|
93
|
+
if (jsonOutput) {
|
|
94
|
+
console.log(JSON.stringify({ success: true, currencyId, name: currency.currencyName }));
|
|
95
|
+
} else {
|
|
96
|
+
console.log(chalk.green(`\nā Currency "${currency.currencyName}" (ID: ${currencyId}) deleted\n`));
|
|
97
|
+
}
|
|
98
|
+
} else {
|
|
99
|
+
const errorMsg = response.error?.message || 'Unknown error';
|
|
100
|
+
const errorCode = response.error?.code || 'DELETE_ERROR';
|
|
101
|
+
if (jsonOutput) {
|
|
102
|
+
console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
|
|
103
|
+
} else {
|
|
104
|
+
console.error(chalk.red(`\nā Failed to delete currency: ${errorMsg}`));
|
|
105
|
+
if (response.error?.code) {
|
|
106
|
+
console.error(chalk.gray(` Error code: ${response.error.code}`));
|
|
107
|
+
}
|
|
108
|
+
console.error();
|
|
109
|
+
}
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
} catch (error) {
|
|
113
|
+
const errMsg = error instanceof Error ? error.message : 'Unknown error';
|
|
114
|
+
if (jsonOutput) {
|
|
115
|
+
console.log(JSON.stringify({ success: false, error: { code: 'ERROR', message: errMsg } }));
|
|
116
|
+
} else {
|
|
117
|
+
console.error(chalk.red(`\nā Error: ${errMsg}\n`));
|
|
118
|
+
}
|
|
119
|
+
process.exit(1);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
return deleteCommand;
|
|
124
|
+
}
|