diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e1514fd --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +queues-go \ No newline at end of file diff --git a/app/routers/put.go b/app/routers/put.go index 7a2759b..b7bc2c0 100644 --- a/app/routers/put.go +++ b/app/routers/put.go @@ -21,6 +21,7 @@ func Put(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusBadRequest) return } + queue := r.Header.Get("queue") var availableFrom time.Time if body.Delay == nil { @@ -28,6 +29,7 @@ func Put(w http.ResponseWriter, r *http.Request) { } else { availableFrom = time.Now().Add(time.Second + time.Duration(*body.Delay)) } + task := tasks.InsertedTask{ Queue: queue, Payload: body.Payload, @@ -37,10 +39,12 @@ func Put(w http.ResponseWriter, r *http.Request) { TakenAt: nil, Attempts: 0, } + err = tasks.Add(task) if err != nil { w.WriteHeader(http.StatusInternalServerError) return } + w.WriteHeader(http.StatusAccepted) } diff --git a/app/routers/take.go b/app/routers/take.go index 8fa92ea..7545cc7 100644 --- a/app/routers/take.go +++ b/app/routers/take.go @@ -23,6 +23,7 @@ func Take(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusInternalServerError) return } + var response TakeResponse if task == nil { response.Task = nil @@ -33,10 +34,12 @@ func Take(w http.ResponseWriter, r *http.Request) { Payload: task.Payload, } } + data, err := json.Marshal(response) if err != nil { w.WriteHeader(http.StatusInternalServerError) return } + w.Write(data) } diff --git a/queues-go b/queues-go deleted file mode 100755 index 4fd67a1..0000000 Binary files a/queues-go and /dev/null differ