diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c08a6c..84a0b85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -## [0.1.1] - 2023.10.31 +## [0.1.2] - 2023.11.01 ### Added - Basics: create ID, record a give, declare a project, search, and get notifications. diff --git a/package-lock.json b/package-lock.json index c03a367..11127e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "kickstart-for-time-pwa", - "version": "0.1.1", + "version": "0.1.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "kickstart-for-time-pwa", - "version": "0.1.1", + "version": "0.1.2", "dependencies": { "@ethersproject/hdnode": "^5.7.0", "@fortawesome/fontawesome-svg-core": "^6.4.0", diff --git a/package.json b/package.json index 5fb2b6c..5ef417d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "kickstart-for-time-pwa", - "version": "0.1.1", + "version": "0.1.2", "private": true, "scripts": { "serve": "vue-cli-service serve", diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index b938062..53e3175 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -428,9 +428,18 @@ export default class HomeView extends Vue { this.allMyDids, this.allContacts, ); - const gaveAmount = claim.object?.amountOfThisGood + let gaveAmount = claim.object?.amountOfThisGood ? this.displayAmount(claim.object.unitCode, claim.object.amountOfThisGood) - : claim.description || "something without description"; + : ""; + if (claim.description) { + if (gaveAmount) { + gaveAmount = gaveAmount + ", and also: "; + } + gaveAmount = gaveAmount + claim.description; + } + if (!gaveAmount) { + gaveAmount = "something not described"; + } // recipient.did is for legacy data, before March 2023 const gaveRecipientId = // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -524,15 +533,18 @@ export default class HomeView extends Vue { hours, ); - if (this.isGiveCreationError(result)) { + if ( + result.type === "error" || + this.isGiveCreationError(result.response) + ) { const errorMessage = this.getGiveCreationErrorMessage(result); - console.log("Error with give result:", result); + console.log("Error with give creation result:", result); this.$notify( { group: "alert", type: "danger", title: "Error", - text: errorMessage || "There was an error recording the give.", + text: errorMessage || "There was an error creating the give.", }, -1, ); @@ -549,7 +561,7 @@ export default class HomeView extends Vue { } // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (error: any) { - console.log("Error with give caught:", error); + console.log("Error with give recordation caught:", error); const message = error.userMessage || error.response?.data?.error?.message || @@ -568,14 +580,26 @@ export default class HomeView extends Vue { // Helper functions for readability + /** + * @param result response "data" from the server + * @returns true if the result indicates an error + */ // eslint-disable-next-line @typescript-eslint/no-explicit-any isGiveCreationError(result: any) { return result.status !== 201 || result.data?.error; } + /** + * @param result direct response eg. ErrorResult or SuccessResult (potentially with embedded "data") + * @returns best guess at an error message + */ // eslint-disable-next-line @typescript-eslint/no-explicit-any getGiveCreationErrorMessage(result: any) { - return result.data?.error?.message; + return ( + result.error?.userMessage || + result.error?.error || + result.response?.data?.error?.message + ); } }