func()

in internal/aws/client.go [367:394]


func (c *client) UpdateUser(u *User) (*User, error) {
	startURL, err := url.Parse(c.endpointURL.String())
	if err != nil {
		return nil, err
	}

	if u == nil {
		err = ErrUserNotFound
		return nil, err
	}

	startURL.Path = path.Join(startURL.Path, fmt.Sprintf("/Users/%s", u.ID))
	resp, err := c.sendRequestWithBody(http.MethodPut, startURL.String(), *u)
	if err != nil {
		return nil, err
	}

	var newUser User
	err = json.Unmarshal(resp, &newUser)
	if err != nil {
		return nil, err
	}
	if newUser.ID == "" {
		return c.FindUserByEmail(u.Username)
	}

	return &newUser, nil
}