From 56e74239d6b34df8f30ef046f0b0ff4ff0866a71 Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Sun, 14 Jun 2015 23:53:32 -0800 Subject: first commit --- model/command.go | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 model/command.go (limited to 'model/command.go') diff --git a/model/command.go b/model/command.go new file mode 100644 index 000000000..23573205e --- /dev/null +++ b/model/command.go @@ -0,0 +1,53 @@ +// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// See License.txt for license information. + +package model + +import ( + "encoding/json" + "io" +) + +const ( + RESP_EXECUTED = "executed" +) + +type Command struct { + Command string `json:"command"` + Response string `json:"reponse"` + GotoLocation string `json:"goto_location"` + ChannelId string `json:"channel_id"` + Suggest bool `json:"-"` + Suggestions []*SuggestCommand `json:"suggestions"` +} + +func (o *Command) AddSuggestion(suggest *SuggestCommand) { + + if o.Suggest { + if o.Suggestions == nil { + o.Suggestions = make([]*SuggestCommand, 0, 128) + } + + o.Suggestions = append(o.Suggestions, suggest) + } +} + +func (o *Command) ToJson() string { + b, err := json.Marshal(o) + if err != nil { + return "" + } else { + return string(b) + } +} + +func CommandFromJson(data io.Reader) *Command { + decoder := json.NewDecoder(data) + var o Command + err := decoder.Decode(&o) + if err == nil { + return &o + } else { + return nil + } +} -- cgit v1.2.3-1-g7c22