Thanks Ian

On Thursday, January 17, 2019 at 2:29:55 PM UTC+5:30, Ian Davis wrote:
>
> On Thu, 17 Jan 2019, at 8:13 AM, aniruddh...@nytimes.com <javascript:> 
> wrote:
>
> Hi I am using NYT's Marvin framework which internally uses gorilla mux. I 
> am able to delete single record when I pass single id as json object in 
> request body using postman but I don't know how to handle array of json 
> objects here. My code is as below:-
>  
> For decoding ---
>
> func DecodeDeleteUser(ctx context.Context, r *http.Request) (interface{}, 
> error) {
>   /// uriDeleteRequest := &UserDel{}
>     uriDeleteRequest := &[]UserDel{}
>     log.Infof(ctx, "DeleteUser before decoding :::::: %+v", r)
>   if err := json.NewDecoder(r.Body).Decode(uriDeleteRequest); err != nil {
>       log.Errorf(ctx, "Delete User Error : Could not decode body from the 
> request")
>   return nil, marvin.NewJSONStatusResponse(
>   "could not decode request body in DeleteUser",
>   http.StatusBadRequest,
>   )
>   }
>     log.Infof(ctx, "DeleteUser After decoding ::: decoding done 
> successfully", uriDeleteRequest)
>   return uriDeleteRequest, nil
> }
>
> It successfully decodes array of JSON. Now problem arises is function 
> below-
>
> func(s service) deleteUserFromDb(ctx context.Context, request interface{}) 
> (interface{}, error) {
> //  var userdel []UserDel
>   log.Infof(ctx, "request just inside method deleteUserFromDb : 
> %+V",request)
>   r := request.([]*UserDel)
>   log.Infof(ctx, "request in form of r is : %+V",r)
> //  db, err := s.ConnectsService.initPostgreConnection(ctx)
>   _, err := s.ConnectsService.initPostgreConnection(ctx)
>   if err != nil {
>     log.Infof(ctx, "Connection established in deleteUserFromDb method ...")
>     return nil,err
>   }
>   return "all fine",nil
> }
>
> Here line  * r := request.([]*UserDel) *gives following error - panic: 
> interface conversion: interface {} is *[]test_marvin.UserDel, not 
> []*test_marvin.UserDel
>
> Here test_marvin is my code's package name. Please help as I don't know 
> what is wrong with my above code in golang?
>
>
> In DecodeDeleteUser it looks like your request is a pointer to a slice of 
> UserDel but in deleteUserFromDb you are expecting it to be a slice of 
> pointers to UserDel. Change uriDeleteRequest := &[]UserDel{} to be 
> uriDeleteRequest := []*UserDel{} and it should work.
>
> All the best,
>
> Ian
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to