diff --git a/client/queue.go b/client/queue.go new file mode 100644 index 0000000..8cb048d --- /dev/null +++ b/client/queue.go @@ -0,0 +1,35 @@ +package client + +import ( + "encoding/json" + "errors" + + "git.selly.red/Selly-Modules/natsio" + "git.selly.red/Selly-Modules/natsio/model" + "git.selly.red/Selly-Modules/natsio/subject" +) + +// Queue ... +type Queue struct{} + +// GetQueue ... +func GetQueue() Queue { + return Queue{} +} + +func (c Queue) ScheduleTask(p model.QueueScheduleTaskRequest) error { + msg, err := natsio.GetServer().Request(subject.Queue.ScheduleTask, toBytes(p)) + if err != nil { + return err + } + var r struct { + Error string `json:"error"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return err + } + if r.Error != "" { + return errors.New(r.Error) + } + return nil +}