ScriptFUSION / Porter

:lipstick: Durable and asynchronous data imports for consuming data at scale and publishing testable SDKs.
GNU Lesser General Public License v3.0
611 stars 24 forks source link

Added mechanism to designate arbitrary exceptions as recoverable #56

Open Bilge opened 6 years ago

Bilge commented 6 years ago

This important feature is needed because, although we have a mechanism for marking exceptions that extend RecoverableConnectorException as recoverable at the connector level, exception may need to be treated as recoverable at the resource level too. Resource implementations may not always have the luxury of creating their own exception types when relying on third party libraries.

On second thoughts, changing the RecoverableConnectorException base class to a RecoverableException interface would probably be a better solution since it would permit implementations to write whatever code they need to trap the specific exception they want to promote to recoverable without any maintenance burden within Porter herself.

codecov-io commented 6 years ago

Codecov Report

Merging #56 into 5.0 will increase coverage by 0.79%. The diff coverage is 58.06%.

Impacted file tree graph

@@             Coverage Diff              @@
##                5.0      #56      +/-   ##
============================================
+ Coverage     91.68%   92.48%   +0.79%     
+ Complexity      220      209      -11     
============================================
  Files            37       32       -5     
  Lines           457      439      -18     
============================================
- Hits            419      406      -13     
+ Misses           38       33       -5
Impacted Files Coverage Δ Complexity Δ
src/ExceptionDescriptor.php 40% <40%> (ø) 10 <10> (?)
src/Connector/ImportConnector.php 93.1% <75%> (-6.9%) 27 <5> (+5)
src/Collection/CountablePorterRecords.php 100% <0%> (ø) 1% <0%> (ø) :arrow_down:
src/Specification/ImportSpecification.php 100% <0%> (ø) 28% <0%> (ø) :arrow_down:
src/Transform/FilterTransformer.php 100% <0%> (ø) 6% <0%> (-7%) :arrow_down:
src/Porter.php 89.24% <0%> (ø) 42% <0%> (-1%) :arrow_down:
src/Collection/RecordCollection.php 100% <0%> (ø) 13% <0%> (ø) :arrow_down:
src/Collection/AsyncPorterRecords.php
src/Collection/AsyncProviderRecords.php
... and 5 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update ca37a22...33b0f84. Read the comment docs.