-
-
Notifications
You must be signed in to change notification settings - Fork 278
Raises on INSUFFICIENT_PERMISSION error from NetSuite response #405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,6 +7,8 @@ def initialize(attributes = {}) | |
| @header = attributes[:header] | ||
| @body = attributes[:body] | ||
| @errors = attributes[:errors] || [] | ||
|
|
||
| raise_on_response_errors | ||
| end | ||
|
|
||
| def success! | ||
|
|
@@ -16,5 +18,30 @@ def success! | |
| def success? | ||
| @success | ||
| end | ||
|
|
||
| private | ||
|
|
||
| def status_detail | ||
| @body && | ||
| @body.is_a?(Hash) && | ||
| @body[:status] && | ||
| @body[:status][:status_detail] | ||
| end | ||
|
|
||
| def response_error_code | ||
| if success? | ||
| nil | ||
| else | ||
| status_detail && | ||
| status_detail[:code] | ||
| end | ||
| end | ||
|
|
||
| def raise_on_response_errors | ||
| case response_error_code | ||
| when 'INSUFFICIENT_PERMISSION' | ||
| raise NetSuite::PermissionError, status_detail[:message] | ||
| end | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @aom what other error types do you think would be added to this switch statement?
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @iloveitaly I don't know yet :) By implementing switch-statement I wanted to embrace the possibility of handling more errors that should raise.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. https://netsuite.custhelp.com/app/answers/detail/a_id/11613 I see a lot of error types, but I don't know which will be useful here.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It seems my user account doesn't have access to that link.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nevermind. I had to open SuiteAnswers from NetSuite Help so it authenticated me and I was able to open the link directly.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Included list to the documentation as a comment in In my use case I've burned myself with INSUFFICIENT_PERMISSION errors often enough that I wanted it to raise instead of fail silently. I can't say whether other error codes should raise but I assume someone might have a good case to add more of them to this list in future!
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @iloveitaly @aom This makes good sense to me. Though I would think that we wouldn't want to fail silently for any unsuccessful requests. Would it be useful to have a "generic" ResponseError raised for all other error types and then we could add to the list of specific errors as needed? I don't know if it would be awkward to have have a mix of specific and generic errors raised
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also, I realize that this PR has been open for a while. Adding the generic error could definitely be done in a second phase so it doesn't hold this one up any longer. |
||
| end | ||
| end | ||
| end | ||
Uh oh!
There was an error while loading. Please reload this page.