func processEntityPut(req *wcg.Request, put *entities.Put, keyParams string, create bool) response.Response { key := req.Param(keyParams) _, ent := put.Kind().Get().Key(key).UseDefaultIfNil(create).MustOne(req) if ent == nil { return response.APINotFound } if req.HTTPRequest().Form == nil { req.Logger.Warnf("You should use ParseForm middleware to avoid the error in EntityPut|EntityPutOrCreate") return response.InternalServerError(req, ErrInvalidFormParameters).(response.Response) } err := put.Kind().UpdateEntityFromForm(ent, req.HTTPRequest().Form) if err != nil { return response.BadRequest(req, ErrInvalidFormParameters) } _, ent_ := put.Key(key).MustUpdate(req, ent) return response.NewJSONResponseWithStatus(ent_, 200) }
func findArtistAndMember(req *wcg.Request) *hplink.Member { var artist *hplink.Artist var member *hplink.Member var funcs = []func(){ func() { _, ent := entities.Artist.Get().Key( req.Param(paramKeyArtist), ).MustOne(req) if ent != nil { artist = ent.(*hplink.Artist) } }, func() { _, ent := entities.Member.Get().Key( fmt.Sprintf("%s.%s", req.Param(paramKeyArtist), req.Param(paramKeyMember)), ).MustOne(req) if ent != nil { member = ent.(*hplink.Member) } }, } iterator.ParallelSlice(funcs, func(i int, v func()) error { v() return nil }) if artist == nil || member == nil { return nil } member.Artist = artist return member }