Initial commit: BMS skill with template support
This commit is contained in:
99
scripts/bms-lookup.sh
Executable file
99
scripts/bms-lookup.sh
Executable file
@@ -0,0 +1,99 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user