From e8d5e0390df3c0202ead740fccc47826434673da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Tue, 8 Dec 2015 17:38:04 +0100 Subject: [PATCH] Improve robustness for server-side failing requests for COA --- .../ascribe_detail/edition_container.js | 3 +- js/stores/edition_store.js | 31 ++++++++++++------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/js/components/ascribe_detail/edition_container.js b/js/components/ascribe_detail/edition_container.js index add06ccd..24010d47 100644 --- a/js/components/ascribe_detail/edition_container.js +++ b/js/components/ascribe_detail/edition_container.js @@ -64,8 +64,7 @@ let EditionContainer = React.createClass({ componentDidUpdate() { const { editionMeta } = this.state; - - if(editionMeta.err && editionMeta.err.status === 404) { + if(editionMeta.err && editionMeta.err.json && editionMeta.err.json.status === 404) { this.throws(new ResourceNotFoundError(getLangText("Oops, the edition you're looking for doesn't exist."))); } }, diff --git a/js/stores/edition_store.js b/js/stores/edition_store.js index fbe070e1..6a129ac1 100644 --- a/js/stores/edition_store.js +++ b/js/stores/edition_store.js @@ -29,21 +29,30 @@ class EditionStore { } } - onSuccessFetchEdition({ edition }) { - this.editionMeta.err = null; - this.editionMeta.idToFetch = null; - this.edition = edition; + onSuccessFetchEdition(res) { + if(res && res.edition) { + this.edition = res.edition; + this.editionMeta.err = null; + this.editionMeta.idToFetch = null; - if(this.edition && this.edition.coa && typeof this.edition.coa.constructor !== Object) { - this.getInstance().lookupCoa(); - } else if(this.edition && !this.edition.coa && this.edition.acl.acl_coa) { - this.getInstance().performCreateCoa(); + if (this.edition.coa && this.edition.acl.acl_coa && + typeof this.edition.coa.constructor !== Object) { + this.getInstance().lookupCoa(); + } else if(!this.edition.coa && this.edition.acl.acl_coa) { + this.getInstance().performCreateCoa(); + } + } else { + this.editionMeta.err = new Error('Problem fetching the edition'); } } - onSuccessFetchCoa({ coa }) { - this.coaMeta.err = null; - this.edition.coa = coa; + onSuccessFetchCoa(res) { + if (res && res.coa && this.edition) { + this.edition.coa = res.coa; + this.coaMeta.err = null; + } else { + this.coaMeta.err = new Error('Problem generating/fetching the COA'); + } } onFlushEdition() {