summaryrefslogtreecommitdiff
path: root/proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto')
-rw-r--r--proto/fail.go2
-rw-r--r--proto/strfail.go22
2 files changed, 23 insertions, 1 deletions
diff --git a/proto/fail.go b/proto/fail.go
index 0b6366b..bd54965 100644
--- a/proto/fail.go
+++ b/proto/fail.go
@@ -7,5 +7,5 @@ func (f Fail) Cmd() Command {
}
func (f Fail) Error() string {
- return f.Kind
+ return Strfail(Object(f))
}
diff --git a/proto/strfail.go b/proto/strfail.go
new file mode 100644
index 0000000..83f314b
--- /dev/null
+++ b/proto/strfail.go
@@ -0,0 +1,22 @@
+package proto
+
+func Strfail(fail Object) string {
+ switch fail.Kind {
+ case "bad-target":
+ return "unknown user or channel"
+ case "unknown-name":
+ return "unknown user or channel name"
+ case "invalid":
+ return "invalid action"
+ case "forbidden":
+ return "you don't have permission to do that"
+ case "name-taken":
+ return "name is in use: " + fail.Fields[""]
+ case "invalid-name":
+ return "name is too long or contains invalid characters: " + fail.Fields[""]
+ case "not-in-channel":
+ return "you are not a member of this channel: " + fail.Fields[""]
+ default:
+ return "unknown error"
+ }
+}