module Api module V1 class SettingsController < BaseController def show current_user.update_required_matrices! render json: payload end def update attributes = params.require(:settings).permit( :email, :total_required_hours, :weekly_target_hours, :praepedeutikum_done, enabled_praktikums_typen: [], required_hours_matrix: {}, weekly_target_matrix: {} ) if current_user.update(attributes) current_user.update_required_matrices! render json: payload else render_validation(current_user) end end private def payload current_user.as_json( only: %i[ email total_required_hours weekly_target_hours required_hours_matrix weekly_target_matrix praepedeutikum_done ] ).merge( praktikums_typen: User::PRAKTIKUMSTYPEN, enabled_praktikums_typen: current_user.enabled_praktikums_typen_list, praktikums_typ_labels: User::PRAKTIKUMSTYP_LABELS, entry_arten: User::ENTRY_ARTEN, entry_arten_by_typ: User::ENTRY_ARTEN_BY_TYP ) end end end end