The get command will eventually have the following semantics.
get <RESOURCE> query parameters
or
get <RESOURCE> <ID_1> <ID_2> query parameters
Some examples
epcc get customers foo Should call GET /v2/customers/foo
epcc get customer-address foo bar should call GET /v2/customers/foo/address/bar
epcc get customer foo include address should call GET /v2/customers/foo?include=address
epcc get customers page[offset] 100 should call GET /v2/customers?page[offset]=100 (although the page[offset] should be url encoded).
In order to build this out we need:
- The ability to make HTTP calls.
- The ability given a resource type to know the URL.
- The ability to pass in supplied ids.
- The ability to handle passing query parameters to the call.
- This is particularly challenging, and in the bash version, I wasn't sure how the CLI could distinguish between whether or not
epcc get customers foo bar means GET /v2/customers?foo=bar or GET /v2/customers/foo?bar.
The scope of this ticket is the most basic, which is just supporting HTTP calls, while other tickets bootstrap other parts of it.
So for this ticket a call to epcc get blargh should call GET /v2/blarg. Other tickets will support meta data and other parts of this feature.
An http 2xx should have a zero exit code to the os, an 3xx should be auto followed, and a 4xx or 5xx should have a non zero exit code to the OS.
The
getcommand will eventually have the following semantics.get <RESOURCE> query parametersor
get <RESOURCE> <ID_1> <ID_2> query parametersSome examples
epcc get customers fooShould callGET /v2/customers/fooepcc get customer-address foo barshould callGET /v2/customers/foo/address/barepcc get customer foo include addressshould callGET /v2/customers/foo?include=addressepcc get customers page[offset] 100should callGET /v2/customers?page[offset]=100(although the page[offset] should be url encoded).In order to build this out we need:
epcc get customers foo barmeansGET /v2/customers?foo=barorGET /v2/customers/foo?bar.The scope of this ticket is the most basic, which is just supporting HTTP calls, while other tickets bootstrap other parts of it.
So for this ticket a call to
epcc get blarghshould callGET /v2/blarg. Other tickets will support meta data and other parts of this feature.An http 2xx should have a zero exit code to the os, an 3xx should be auto followed, and a 4xx or 5xx should have a non zero exit code to the OS.