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