class GangsController < ApplicationController include ActionController::MimeResponds before_action :set_gang, only: [:update, :backup] def index json_response Gang.all rescue StandardError error_response :bad_request end def create gang = Gang.create(gang_params) if gang.save json_response Gang.all else error_response :bad_request end rescue StandardError error_response :bad_request end def update @gang.update!(gang_params) json_response onboarded: true rescue StandardError => err Rails.logger.error(err) error_response :bad_request end def backup csv_string = CSV.generate do |csv| csv << [:homie_name, :money_amount, :work_amount, :description, :date, :deleted] @gang.money_moves.each do |money_move| csv << money_move.to_csv_row end @gang.works.each do |work| csv << work.to_csv_row end end send_data csv_string end private def set_gang if params[:gang_id] || params[:id] @gang = Gang.find(params[:id] || params[:gang_id]) else error_response :bad_request end rescue StandardError => err Rails.logger.error(err) error_response :bad_request end def gang_params params.require(:gang).permit :name, :about, :chip_name, :chip_code, :chip_symbol, :chip_scale, :chip_prefixed end end