Files
openclaw-bms/scripts/bms-lookup.sh

100 lines
2.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# bms-lookup.sh — Fetch lookup tables (statuses, priorities, queues, etc.)
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BMS_API_BASE="${BMS_API_BASE:-https://api.bms.kaseya.com}"
die() { echo "ERROR: $*" >&2; exit 1; }
get_token() {
bash "${SCRIPT_DIR}/bms-auth.sh" get-token
}
bms_curl() {
local path="$1"; shift
local token
token=$(get_token)
curl -sf -X GET \
"${BMS_API_BASE}${path}" \
-H "Authorization: Bearer ${token}" \
-H "Accept: application/json" \
"$@"
}
format_lookup() {
jq -r '
(.Data // .Items // .) |
if type == "array" then .[]
else .
end |
"\(.Id // .id)\t\(.Name // .name // .Text // .text // "(unnamed)")"
' | sort -n | column -t -s $'\t'
}
cmd_lookup() {
local table="$1"
case "$table" in
statuses|status)
echo "=== Ticket Statuses ===" >&2
bms_curl "/v2/system/statuses/lookup" | format_lookup
;;
priorities|priority)
echo "=== Priorities ===" >&2
bms_curl "/v2/system/priorities/lookup" | format_lookup
;;
queues|queue)
echo "=== Queues ===" >&2
bms_curl "/v2/system/queues/lookup" | format_lookup
;;
issue-types|issuetypes)
echo "=== Issue Types ===" >&2
bms_curl "/v2/system/issuetypes/lookup" | format_lookup
;;
sources|source)
echo "=== Ticket Sources ===" >&2
bms_curl "/v2/system/lookup/TicketSource" | format_lookup
;;
ticket-types|tickettypes)
echo "=== Ticket Types ===" >&2
bms_curl "/v2/system/lookup/TicketType" | format_lookup
;;
assignees|assignee|technicians)
echo "=== Assignees / Technicians ===" >&2
bms_curl "/v2/hr/assignees/lookup" | format_lookup
;;
slas|sla)
echo "=== SLAs ===" >&2
bms_curl "/v2/system/slas/lookup" | format_lookup
;;
work-types|worktypes)
echo "=== Work Types ===" >&2
bms_curl "/v2/system/worktypes/lookup" | format_lookup
;;
note-types|notetypes)
echo "=== Note Types (via tenantlookup) ===" >&2
bms_curl "/v2/system/tenantlookup/NoteType" | format_lookup
;;
all)
cmd_lookup statuses
echo
cmd_lookup priorities
echo
cmd_lookup queues
echo
cmd_lookup issue-types
echo
cmd_lookup assignees
;;
*)
die "Unknown lookup table: $table
Available: statuses, priorities, queues, issue-types, sources, ticket-types, assignees, slas, work-types, note-types, all"
;;
esac
}
table="${1:-}"
[[ -n "$table" ]] || die "Usage: bms lookup <statuses|priorities|queues|issue-types|sources|ticket-types|assignees|slas|work-types|note-types|all>"
cmd_lookup "$table"