Failed to use {{key}}={{value}} for nested JSON
Closed this issue · 1 comments
EmilyGraceSeville7cf commented
Hi! I wanna write a function to create a GitHub gist. This is what I wrote:
function gists__new --description "Create a gist for the authenticated user"
argparse l/login= p/pat= d/description= P/public f/file= c/content= -- $argv
set login $_flag_login
set pat $_flag_pat
set description $_flag_description
set public false
set --query _flag_public && set public true
set file $_flag_file
set content $_flag_content
set body "$(jq --null-input '{
"description": $description,
"public": $public,
"files": {
($file): {
"content": $content
}
}
}' \
--arg description $description \
--arg public $public \
--arg file $file \
--arg content $content)"
https --auth "$login:$pat" POST api.github.com/gists \
Accept:application/vnd.github+json \
X-GitHub-Api-Version:$api_version \
--raw $body
end
It works, but requires jq
. According to HTTPie docs I can get rid of it. I tried to use {{key}}={{value}}
but failed:
function gists__new --description "Create a gist for the authenticated user"
argparse l/login= p/pat= d/description= P/public f/file= c/content= -- $argv
set login $_flag_login
set pat $_flag_pat
set description $_flag_description
set public false
set --query _flag_public && set public true
set file $_flag_file
set content $_flag_content
https --auth "$login:$pat" POST api.github.com/gists \
"description=$description" \
"public=$public" \
"files[$file][content]=$content" \
Accept:application/vnd.github+json \
X-GitHub-Api-Version:$api_version \
end
The response I get is:
{
"documentation_url": "https://docs.github.com/rest/gists/gists#create-a-gist",
"message": "Invalid request.\n\nInvalid input: object is missing required key: files."
}
What am I doing wrong?
EmilyGraceSeville7cf commented
I checked my HTTPie version, and it was outdated, update to the latest version solved this problem.