JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

Should fail with original error

Offen
#1,133 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Type: Enhancement
Vorherrschende Sprache
Ruby
Sterne
2.3k
Forks
546
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

In some cases original exceptions have important effects, for example I ran with issue that this fix is not working with jsonapi-resources "deallocate prepared statements if we fail inside a transaction"(https://github.com/rails/rails/pull/22170), so when you shallow error here you'd potentially breaks some other logic.

I think you should propagate original error, not just ActiveRecord::Rollback

Something like this should work, I think
https://github.com/cerebris/jsonapi-resources/blob/v0.9.0/lib/jsonapi/operation_dispatcher.rb#L30:
rollback(transactional) if results.has_errors? => fail results.original_error if results.has_errors? && transactional

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit operation_dispatcher.rb ungefähr bei Zeile 30 und acts_as_resource_controller.rb ungefähr bei Zeile 100 und überprüfe anschließend das referenzierte Transaktionsverhalten in der verlinkten Rails-Änderung. Bestätige, dass eine transaktionale Operation ihre ursprüngliche Ausnahme weitergibt und nicht nur ActiveRecord::Rollback, während das nicht-transaktionale Verhalten unverändert bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rails, ruby
Bereich
api, backend
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.