func (c Client) Update(id string, params *stripe.CardParams) (*stripe.Card, error) { body := &url.Values{} params.AppendDetails(body, false) params.AppendTo(body) card := &stripe.Card{} var err error if len(params.Customer) > 0 { err = c.B.Call("POST", fmt.Sprintf("/customers/%v/cards/%v", params.Customer, id), c.Key, body, ¶ms.Params, card) } else if len(params.Recipient) > 0 { err = c.B.Call("POST", fmt.Sprintf("/recipients/%v/cards/%v", params.Recipient, id), c.Key, body, ¶ms.Params, card) } else { err = errors.New("Invalid card params: either customer or recipient need to be set") } return card, err }
func (c Client) New(params *stripe.CardParams) (*stripe.Card, error) { body := &stripe.RequestValues{} params.AppendDetails(body, true) params.AppendTo(body) card := &stripe.Card{} var err error if len(params.Account) > 0 { if params.Default { body.Add("default_for_currency", strconv.FormatBool(params.Default)) } err = c.B.Call("POST", fmt.Sprintf("/accounts/%v/external_accounts", params.Account), c.Key, body, ¶ms.Params, card) } else if len(params.Customer) > 0 { err = c.B.Call("POST", fmt.Sprintf("/customers/%v/cards", params.Customer), c.Key, body, ¶ms.Params, card) } else if len(params.Recipient) > 0 { err = c.B.Call("POST", fmt.Sprintf("/recipients/%v/cards", params.Recipient), c.Key, body, ¶ms.Params, card) } else { err = errors.New("Invalid card params: either account, customer or recipient need to be set") } return card, err }