// BindRequest both binds and validates a request, it assumes that complex things implement a Validatable(strfmt.Registry) error interface // for simple values it will use straight method calls func (o *UpdateOneParams) BindRequest(r *http.Request, route *middleware.MatchedRoute) error { var res []error o.HTTPRequest = r if runtime.HasBody(r) { defer r.Body.Close() var body models.Item if err := route.Consumer.Consume(r.Body, &body); err != nil { res = append(res, errors.NewParseError("body", "body", "", err)) } else { if err := body.Validate(route.Formats); err != nil { res = append(res, err) } if len(res) == 0 { o.Body = &body } } } rID, rhkID, _ := route.Params.GetOK("id") if err := o.bindID(rID, rhkID, route.Formats); err != nil { res = append(res, err) } if len(res) > 0 { return errors.CompositeValidationError(res...) } return nil }
// BindRequest both binds and validates a request, it assumes that complex things implement a Validatable(strfmt.Registry) error interface // for simple values it will use straight method calls func (o *AddOneParams) BindRequest(r *http.Request, route *middleware.MatchedRoute) error { var res []error var body models.Item if err := route.Consumer.Consume(r.Body, &body); err != nil { res = append(res, errors.NewParseError("body", "body", "", err)) } else { if err := body.Validate(route.Formats); err != nil { res = append(res, err) } if len(res) == 0 { o.Body = &body } } if len(res) > 0 { return errors.CompositeValidationError(res...) } return nil }
func addItem(item *models.Item) error { if item == nil { return errors.New(500, "item must be present") } itemsLock.Lock() defer itemsLock.Unlock() item.ID = newItemID() items[item.ID] = item return nil }
func updateItem(id int64, item *models.Item) error { if item == nil { return errors.New(500, "item must be present") } itemsLock.Lock() defer itemsLock.Unlock() _, exists := items[id] if !exists { return errors.NotFound("not found: item %d", id) } item.ID = id items[id] = item return nil }