From 016a0a8c3ec0666cf46d39abed1bcac0936aa846 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 5 Dec 2015 17:59:31 +0100 Subject: Put message structures and types together --- messages.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'messages.go') diff --git a/messages.go b/messages.go index b5a1738..28d531b 100644 --- a/messages.go +++ b/messages.go @@ -1,6 +1,7 @@ package acme import ( + "fmt" "net" "time" ) @@ -81,3 +82,30 @@ type Problem struct { Detail string `json:"detail"` Instance string `json:"instance"` } + +type Status int + +const ( + StatusUnknown Status = iota + StatusPending + StatusProcessing + StatusValid + StatusInvalid + StatusRevoked +) + +func (s *Status) UnmarshalJSON(b []byte) error { + var status = map[string]Status{ + "unknown": StatusUnknown, + "pending": StatusPending, + "processing": StatusProcessing, + "valid": StatusValid, + "invalid": StatusInvalid, + "revoked": StatusRevoked, + } + if st, ok := status[string(b)]; ok { + *s = st + return nil + } + return fmt.Errorf("unknown status %v", string(b)) +} -- cgit v1.2.3