fix(bms): improve logging and response parsing
- bms-logging.sh: fixed brace expansion bug, JSON compaction, dynamic log path, single-line JSONL entries
- bms-tickets.sh: support {success:true,result:{...}} responses; fixed ID extraction for create/note; updated update fetch
Tested full lifecycle with logging: create → note → delete note → close → delete
This commit is contained in:
10
scripts/bms-tickets.sh
Executable file → Normal file
10
scripts/bms-tickets.sh
Executable file → Normal file
@@ -269,8 +269,8 @@ cmd_create() {
|
||||
response=$(bms_curl POST "/v2/servicedesk/tickets" -d "$body")
|
||||
|
||||
success=$(echo "$response" | jq -r '.success // .Success // empty')
|
||||
ticket_id=$(echo "$response" | jq -r '.Data.Id // .Id // empty')
|
||||
ticket_number=$(echo "$response" | jq -r '.Data.TicketNumber // .TicketNumber // empty')
|
||||
ticket_id=$(echo "$response" | jq -r '.Data.Id // .Id // .result.id // .result.id // empty')
|
||||
ticket_number=$(echo "$response" | jq -r '.Data.TicketNumber // .TicketNumber // .result.ticketNumber // empty')
|
||||
|
||||
if [[ "$success" != "true" ]] || [[ -z "$ticket_id" ]] || [[ "$ticket_id" == "null" ]]; then
|
||||
echo "Create ticket failed or returned ambiguous response:" >&2
|
||||
@@ -321,7 +321,7 @@ cmd_update() {
|
||||
|
||||
# Fetch current ticket first so we can do a full PUT with changes merged
|
||||
local current
|
||||
current=$(bms_curl GET "/v2/servicedesk/tickets/${ticket_id}" | jq '.Data // .')
|
||||
current=$(bms_curl GET "/v2/servicedesk/tickets/${ticket_id}" | jq '.Data // .result // .')
|
||||
|
||||
local patch="{}"
|
||||
while [[ $# -gt 0 ]]; do
|
||||
@@ -358,7 +358,7 @@ cmd_update() {
|
||||
|
||||
local response
|
||||
response=$(bms_curl PUT "/v2/servicedesk/tickets/${ticket_id}" -d "$body")
|
||||
echo "$response" | jq -r '"Updated ticket \(.Data.Id // .Id // "'"$ticket_id"'")"'
|
||||
echo "$response" | jq -r '"Updated ticket \(.Data.Id // .Id // .result.id // "'"$ticket_id"'")"'
|
||||
# Log success
|
||||
local args_json result_json
|
||||
args_json=$(jq -n --argjson ticket_id "$ticket_id" --argjson patch "$patch" '{ticket_id: $ticket_id, patch: $patch}')
|
||||
@@ -404,7 +404,7 @@ cmd_note() {
|
||||
local response
|
||||
response=$(bms_curl POST "/v2/servicedesk/tickets/${ticket_id}/notes" -d "$body")
|
||||
local note_id
|
||||
note_id=$(echo "$response" | jq -r '.Data.Id // .Id // empty')
|
||||
note_id=$(echo "$response" | jq -r '.Data.Id // .Id // .result.id // .result.id // empty')
|
||||
if [[ -z "$note_id" || "$note_id" == "null" ]]; then
|
||||
echo "Note add failed or returned ambiguous response:" >&2
|
||||
echo "$response" | jq . >&2
|
||||
|
||||
Reference in New Issue
Block a user