// pushStackHandler adds an element into a Stack and returns 200 and the element. func (c *Conn) pushStackHandler(w http.ResponseWriter, r *http.Request, stack *pila.Stack) { if r.Body == nil { log.Println(r.Method, r.URL, http.StatusBadRequest, "no element provided") w.WriteHeader(http.StatusBadRequest) return } var element pila.Element err := element.Decode(r.Body) if err != nil { log.Println(r.Method, r.URL, http.StatusBadRequest, "error on decoding element:", err) w.WriteHeader(http.StatusBadRequest) return } stack.Push(element.Value) stack.Update(c.opDate) log.Println(r.Method, r.URL, http.StatusOK, element.Value) w.Header().Set("Content-Type", "application/json") // Do not check error as we consider our element // suitable for a JSON encoding. b, _ := element.ToJSON() w.Write(b) }