diff --git a/core/domain/models/command.go b/core/domain/models/command.go
index <HASH>..<HASH> 100644
--- a/core/domain/models/command.go
+++ b/core/domain/models/command.go
@@ -70,6 +70,27 @@ func (c Command) String() string {
 	return string(out)
 }
 
+func(c *Command) UnmarshalJSON(b []byte) error {
+	type Alias Command
+	alias := &struct {
+		*Alias
+	} {
+		Alias: (*Alias)(c),
+	}
+
+	if err := json.Unmarshal(b, &alias); err != nil {
+		return err
+	}
+	c = (*Command)(alias.Alias)
+	if c.Get == nil {
+		c.Get = &Get{}
+	}
+	if c.Put == nil {
+		c.Put = &Put{}
+	}
+	return nil
+}
+
 // Append all the associated value descriptors to the list
 // Associated by PUT command parameters and PUT/GET command return values
 func (c *Command) AllAssociatedValueDescriptors(vdNames *map[string]string) {
Addressing panic from issue #<I>

The approach here was to utilize UnmarshalJSON() on the Command domain
model in order to ensure that both Get and Put are initialized. The
bug was caused because the sample request did not have a GET so when
Mongo tried to call Get.String() it panicked due to NIL reference.