9292653bf9
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
42 lines
994 B
Ruby
42 lines
994 B
Ruby
class Platform::Api::V1::AccountsController < PlatformController
|
|
def create
|
|
@resource = Account.create!(account_params)
|
|
update_resource_features
|
|
@platform_app.platform_app_permissibles.find_or_create_by(permissible: @resource)
|
|
end
|
|
|
|
def show; end
|
|
|
|
def update
|
|
@resource.assign_attributes(account_params)
|
|
update_resource_features
|
|
@resource.save!
|
|
end
|
|
|
|
def destroy
|
|
DeleteObjectJob.perform_later(@resource)
|
|
head :ok
|
|
end
|
|
|
|
private
|
|
|
|
def set_resource
|
|
@resource = Account.find(params[:id])
|
|
end
|
|
|
|
def account_params
|
|
permitted_params.except(:features)
|
|
end
|
|
|
|
def update_resource_features
|
|
return if permitted_params[:features].blank?
|
|
|
|
permitted_params[:features].each do |key, value|
|
|
value.present? ? @resource.enable_features(key) : @resource.disable_features(key)
|
|
end
|
|
end
|
|
|
|
def permitted_params
|
|
params.permit(:name, :locale, :domain, :support_email, :status, features: {}, limits: {}, custom_attributes: {})
|
|
end
|
|
end
|