code-corps / code-corps/code-corps-api

Look through StripeService modules and remove error swallowing

Đang mở
#611 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Elixir
Star
234
Fork
82
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

# Problem

A lot of our `StripeXService` modules use `with` statements in their public functions.

Some of those `with` statements have `else` blocks with a catch all clause along the lines of

```Elixir
with
#...
do
# ...
else
# ...
_ -> {:error, :unhandled}
end
```

The problem with that is that this behavior basically swallows an error, still causes a function clause mismatch error in the controller that called the function (since the controller is not expecting an `{:error, :unhandled}` reply, but ends up swallowing any useful information which sentry might log otherwise, such as what the actual response was, where it happened, etc.

We should go through all of our with blocks, remove these catch-all clauses and if that means the `else` block is empty, remove the `else` block altogether. As unexpected things occur, sentry will log these things and then we can progressively add handling for **specific** types of errors.

We actually do this with some transaction statements to, so we should remove it from there as well.

# Subtasks

* [ ] Go through all `StripeService` base modules
* [ ] Remove catch all clauses from if blocks
* [ ] Fix tests that might brake (basically remove tests that expect an `{:error, :unhandled}` reply.
* [ ] Do the same for transaction statements

# References

https://github.com/code-corps/code-corps-api/issues/543#issuecomment-265758601 for some additional information.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.