Skip to content
Snippets Groups Projects
Commit ab6e7b14 authored by Jono Wenger's avatar Jono Wenger
Browse files

Implement errors.go

parent 1f920df8
No related branches found
No related tags found
1 merge request!60Revert "Fail a test to be sure it works"
......@@ -82,6 +82,12 @@ func main() {
js.Global().Set("InitializeBackup", js.FuncOf(wasm.InitializeBackup))
js.Global().Set("ResumeBackup", js.FuncOf(wasm.ResumeBackup))
// bindings/errors.go
js.Global().Set("CreateUserFriendlyErrorMessage",
js.FuncOf(wasm.CreateUserFriendlyErrorMessage))
js.Global().Set("UpdateCommonErrors",
js.FuncOf(wasm.UpdateCommonErrors))
<-make(chan bool)
os.Exit(0)
}
////////////////////////////////////////////////////////////////////////////////
// Copyright © 2020 xx network SEZC //
// //
// Use of this source code is governed by a license that can be found in the //
// LICENSE file //
////////////////////////////////////////////////////////////////////////////////
//go:build js && wasm
package wasm
import (
"gitlab.com/elixxir/client/bindings"
"syscall/js"
)
// CreateUserFriendlyErrorMessage will convert the passed in error string to an
// error string that is user-friendly if a substring match is found to a
// common error. Common errors is a map that can be updated using
// UpdateCommonErrors. If the error is not common, some simple parsing is done
// on the error message to make it more user-accessible, removing backend
// specific jargon.
//
// Parameters:
// - args[0] - an error returned from the backend (string).
//
// Returns
// - A user-friendly error message. This should be devoid of technical speak
// but still be meaningful for front-end or back-end teams (string).
func CreateUserFriendlyErrorMessage(_ js.Value, args []js.Value) interface{} {
return bindings.CreateUserFriendlyErrorMessage(args[0].String())
}
// UpdateCommonErrors updates the internal error mapping database. This internal
// database maps errors returned from the backend to user-friendly error
// messages.
//
// Parameters:
// - args[0] - contents of a JSON file whose format conforms to the example
// below (string).
//
// Example Input:
// {
// "Failed to Unmarshal Conversation": "Could not retrieve conversation",
// "Failed to unmarshal SentRequestMap": "Failed to pull up friend requests",
// "cannot create username when network is not health": "Cannot create username, unable to connect to network",
// }
//
// Returns:
// - throws a TypeError if the JSON cannot be unmarshalled.
func UpdateCommonErrors(_ js.Value, args []js.Value) interface{} {
err := bindings.UpdateCommonErrors(args[0].String())
if err != nil {
Throw(TypeError, err.Error())
return nil
}
return nil
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment