Skip to content

Kiqr::Services::Accounts::Update

The Kiqr::Services::Accounts::Update service class facilitates the update process for accounts within the Kiqr platform. It ensures that only authorized users can update account details, supporting both personal and team accounts.

Usage

To update an account, provide an instance of the account to be updated and the user attempting the update.

ruby
@account.assign_attributes(account_params)

if @account.valid?
  Kiqr::Services::Accounts::Update.call!(account: @account, user: current_user)
  redirect_to edit_account_path
else
  render :edit, status: :unprocessable_entity
end

Parameters

  • account: An instance of the account you wish to update. This should be a persisted ActiveRecord object.

  • user: The user attempting to update the account. This should also be a persisted ActiveRecord object.

Behavior

  • Permission Check: The service first verifies that the provided user has the necessary permissions to update the account. A user is allowed to update their personal account or any team account they are part of.

  • Update and Save: If the permission check passes, the account is then saved with the provided updates.

Error handling

If the user does not have the necessary permissions to update the account, a StandardError is raised with the message "User does not have permission to edit this account."