#!/usr/bin/env nushell let groups = [{ }] let users = [ ] let settings = open $env.LLDAP_CONFIG let url = ( 'http://' | $in + ($settings | get http_host | default '127.0.0.1') | $in + ':' | $in + ($settings | get http_port | default '17170' | into string)) let user = $settings | get ldap_user_dn | default admin let pass = open $env.LLDAP_LDAP_USER_PASS_FILE let token = { username: $user, password: $pass } | to json | http post $'($url)/auth/simple/login' | get token def query [operation: string, query: string, variables: list<string>] { let body = { query: $query, operationName: $operation, variables: $variables } let res = $body | to json | http post --headers [Authorization $'Bearer ($token)'] $'($url)/api/graphql' if ("errors" in $res) { let msg = "GraphQL query to LLDAP failed:\n" + ($res.errors | each {|e| $'- ($e)' | str join (char newline)}) error make { msg: $msg, label: { text: "Query defined here", span: (metadata $query).span } } } else { $res.data } }