From ac7002b26b30251b3b3d5c610ce596e5c87eb1dc Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Thu, 29 Jun 2017 11:13:39 +0200 Subject: improve config parsing for header operation --- src/daq/s5proxy/src/s5proxy/config.go | 42 +++++++++++++---------------------- 1 file changed, 16 insertions(+), 26 deletions(-) (limited to 'src') diff --git a/src/daq/s5proxy/src/s5proxy/config.go b/src/daq/s5proxy/src/s5proxy/config.go index 1aa773a..10e1e7e 100644 --- a/src/daq/s5proxy/src/s5proxy/config.go +++ b/src/daq/s5proxy/src/s5proxy/config.go @@ -115,41 +115,31 @@ func (r *RedirectCode) UnmarshalJSON(data []byte) (err error) { return r.fromString(string(data)) } -type Operation uint +type Operation string const ( - OpAdd Operation = iota - OpDel - OpSet - OpTime + OpAdd Operation = "add" + OpDel Operation = "del" + OpSet Operation = "set" + OpTime Operation = "time" ) func (o Operation) String() string { - switch o { - case OpAdd: - return "add" - case OpDel: - return "del" - case OpSet: - return "set" - case OpTime: - return "time" - } - return "unknown" + return string(o) } func (o *Operation) fromString(str string) (err error) { - switch str { - case "add": - *o = OpAdd - case "del": - *o = OpDel - case "set": - *o = OpSet - case "time": - *o = OpTime + switch strings.ToLower(str) { + case string(OpAdd): + fallthrough + case string(OpDel): + fallthrough + case string(OpSet): + fallthrough + case string(OpTime): + *o = Operation(strings.ToLower(str)) default: - return errors.New("invalid operation: '" + str + "'") + return fmt.Errorf("invalid operation: '"+str+"', must be one of '%s', '%s', '%s' or '%s'", OpAdd, OpDel, OpSet, OpTime) } return } -- cgit v1.2.3