func mapCart(c martini.Context, res http.ResponseWriter, r *http.Request) error { qs := r.URL.Query() var shopId string if qsId := qs.Get("shop"); qsId != "" { shopId = qsId } else if formId := r.FormValue("shop"); formId != "" { shopId = formId } else if headerId := r.Header.Get("shop"); headerId != "" { shopId = headerId } if shopId == "" { return fmt.Errorf("error: %s", "you must provide a shop identifier") } if !bson.IsObjectIdHex(shopId) { return fmt.Errorf("error: %s", "invalid shop identifier") } shop := cart.Shop{ Id: bson.ObjectIdHex(shopId), } if shop.Id.Hex() == "" { return fmt.Errorf("error: %s", "invalid shop identifier") } if err := shop.Get(); err != nil { return err } if shop.Id.Hex() == "" { return fmt.Errorf("error: %s", "invalid shop identifier") } c.Map(&shop) return nil }
func mapCartAccount(c martini.Context, res http.ResponseWriter, r *http.Request) error { auth := r.Header.Get("Authorization") token := strings.Replace(auth, "Bearer ", "", 1) cust, err := cart.AuthenticateAccount(token) if err != nil { return err } shop := cart.Shop{ Id: cust.ShopId, } if shop.Id.Hex() == "" { return fmt.Errorf("error: %s", "invalid shop identifier") } if err := shop.Get(); err != nil { return err } if shop.Id.Hex() == "" { return fmt.Errorf("error: %s", "invalid shop identifier") } c.Map(&shop) c.Map(token) return nil }