forked from jsnbuchanan/crowd-funder-for-time-pwa
Fix a bug in HomeView and clean up recordGive method
This commit is contained in:
@@ -98,6 +98,29 @@ export default class HomeView extends Vue {
|
|||||||
alertTitle = "";
|
alertTitle = "";
|
||||||
alertMessage = "";
|
alertMessage = "";
|
||||||
|
|
||||||
|
public async getIdentity(activeDid) {
|
||||||
|
await accountsDB.open();
|
||||||
|
const accounts = await accountsDB.accounts.toArray();
|
||||||
|
const account = R.find((acc) => acc.did === activeDid, accounts);
|
||||||
|
const identity = JSON.parse(account?.identity || "null");
|
||||||
|
|
||||||
|
if (!identity) {
|
||||||
|
throw new Error(
|
||||||
|
"Attempted to load Give records with no identity available.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return identity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getHeaders(identity) {
|
||||||
|
const token = await accessToken(identity);
|
||||||
|
const headers = {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
Authorization: "Bearer " + token,
|
||||||
|
};
|
||||||
|
return headers;
|
||||||
|
}
|
||||||
|
|
||||||
async created() {
|
async created() {
|
||||||
try {
|
try {
|
||||||
await accountsDB.open();
|
await accountsDB.open();
|
||||||
@@ -254,51 +277,57 @@ export default class HomeView extends Vue {
|
|||||||
* @param description may be an empty string
|
* @param description may be an empty string
|
||||||
* @param hours may be 0
|
* @param hours may be 0
|
||||||
*/
|
*/
|
||||||
recordGive(giverDid, description, hours) {
|
public async recordGive(giverDid, description, hours) {
|
||||||
if (!this.activeDid) {
|
if (!this.activeDid) {
|
||||||
this.alertTitle = "Error";
|
this.setAlert(
|
||||||
this.alertMessage =
|
"Error",
|
||||||
"You must select an identity before you can record a give.";
|
"You must select an identity before you can record a give.",
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!description && !hours) {
|
if (!description && !hours) {
|
||||||
this.alertTitle = "Error";
|
this.setAlert(
|
||||||
this.alertMessage =
|
"Error",
|
||||||
"You must enter a description or some number of hours.";
|
"You must enter a description or some number of hours.",
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const identity = await this.getIdentity(this.activeDid);
|
try {
|
||||||
|
const identity = await this.getIdentity(this.activeDid);
|
||||||
|
const result = await createAndSubmitGive(
|
||||||
|
this.axios,
|
||||||
|
this.apiServer,
|
||||||
|
identity,
|
||||||
|
giverDid,
|
||||||
|
this.activeDid,
|
||||||
|
description,
|
||||||
|
hours,
|
||||||
|
);
|
||||||
|
|
||||||
createAndSubmitGive(
|
if (isGiveCreationError(result)) {
|
||||||
this.axios,
|
const errorMessage = getGiveCreationErrorMessage(result);
|
||||||
this.apiServer,
|
console.log("Error with give result:", result);
|
||||||
identity,
|
this.setAlert(
|
||||||
giverDid,
|
"Error",
|
||||||
this.activeDid,
|
errorMessage || "There was an error recording the give.",
|
||||||
description,
|
);
|
||||||
hours,
|
} else {
|
||||||
)
|
this.setAlert("Success", "That gift was recorded.");
|
||||||
.then((result) => {
|
}
|
||||||
if (isGiveCreationError(result)) {
|
} catch (error) {
|
||||||
const errorMessage = getGiveCreationErrorMessage(result);
|
console.log("Error with give caught:", error);
|
||||||
console.log("Error with give result:", result);
|
this.setAlert(
|
||||||
this.alertTitle = "Error";
|
"Error",
|
||||||
this.alertMessage =
|
getGiveErrorMessage(error) || "There was an error recording the give.",
|
||||||
errorMessage || "There was an error recording the give.";
|
);
|
||||||
} else {
|
}
|
||||||
this.alertTitle = "Success";
|
}
|
||||||
this.alertMessage = "That gift was recorded.";
|
|
||||||
}
|
private setAlert(title, message) {
|
||||||
})
|
this.alertTitle = title;
|
||||||
.catch((error) => {
|
this.alertMessage = message;
|
||||||
console.log("Error with give caught:", error);
|
|
||||||
this.alertTitle = "Error";
|
|
||||||
this.alertMessage =
|
|
||||||
getGiveErrorMessage(error) ||
|
|
||||||
"There was an error recording the give.";
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper functions for readability
|
// Helper functions for readability
|
||||||
|
|||||||
Reference in New Issue
Block a user