github.com/hy3/cuto@v0.9.8-0.20160830082821-aa6652f877b7/message/jobresult.go (about) 1 package message 2 3 import ( 4 "encoding/json" 5 "fmt" 6 ) 7 8 type JobResult struct { 9 Type string `json:"type"` 10 Version string `json:"version"` 11 NID int `json:"nid"` 12 JID string `json:"jid"` 13 RC int `json:"rc"` 14 Stat int `json:"stat"` 15 Var string `json:"var"` 16 St string `json:"st"` 17 Et string `json:"et"` 18 } 19 20 const jobResultMessageType = "jobresult" 21 22 // ジョブ正常終了確認JSONメッセージをパースし、JobCheckオブジェクトのメンバをセットする。 23 // 24 // param : message 受信メッセージ文字列 25 func (j *JobResult) ParseJSON(message string) error { 26 byteMessage := []byte(message) 27 err := json.Unmarshal(byteMessage, j) 28 if err != nil { 29 return err 30 } 31 if j.Type != jobResultMessageType { 32 return fmt.Errorf("Invalid message type.") 33 } 34 return nil 35 } 36 37 // JobCheckオブジェクトの値を元に、ジョブ正常終了確認JSONメッセージを生成する 38 // 39 // return : JSONメッセージフォーマットの文字列。 40 func (j JobResult) GenerateJSON() (string, error) { 41 j.Type = jobResultMessageType 42 j.Version = ServantVersion 43 byteMessage, err := json.Marshal(j) 44 if err != nil { 45 return ``, err 46 } 47 return string(byteMessage), nil 48 }