Skip to content

Exception on orders not found #1

@momon

Description

@momon

I recently came across this and started testing it for a new project. Thank you for making it available.

I am not 100% sure if this is intentional but if you lookup an order that does NOT exists an exception is thrown instead of a graceful error of an entry not found.

For instance, here is a test on an order I know doesn't exists:

Error 400 reported by FastSpring's API for your GET request to the \"orders\" endpoint. Response: \"{\\\"orders\\\":[{\\\"action\\\":\\\"order.get\\\",\\\"order\\\":\\\"someorderid\\\",\\\"result\\\":\\\"error\\\",\\\"error\\\":{\\\"order\\\":\\\"Not found\\\"}}]}\"

As you can see, FS does respond with an expected Order Not Found message but the wrapper instead of relaying that message over gracefully throws an exception. I understand it may not be a common scenario to try and fetch data for an invalid order but I came across that while testing and though I would submit feedback.

Not sure if considered an improvement or not but I would have liked to get an error message or error code instead that I could manage in order to control the end user output (this might be a bit too specific to how I am trying to implement your wrapper).

Cheers.

Update: a quick workaround for this is to catch the exception like so. You can get fancy with some logic to identify the error response and provide more meaningful output based on it. In the example below all failures will return 400. This is using Code Igniter but is applicable to any other PHP framework.

try {
    $response = FastSpring::get('orders', ['someorderid']);
} catch (\Exception $e) {
    return $this->fail($e->getMessage(), 400);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions