Sha256: 1e5ec34ca546eba0ed251ae955522c21a10c13c62aaac6bd4c291b23402b81c5

Contents?: true

Size: 1.53 KB

Versions: 1

Compression:

Stored size: 1.53 KB

Contents

module Org
  class Board::OrgansController < Board::BaseController
    before_action :set_organ, only: [:show, :edit, :update, :destroy]

    def index
      @organs = current_user.organs
      if @organs.blank?
        @member = current_user.members.build
        @organ = @member.build_organ
        render :new
      else
        render 'index'
      end
    end

    def new
      @organ = Organ.new
      @member = @organ.members.build(owned: true)
    end

    def create
      @organ = Organ.new(organ_params)
      @member = @organ.members.build(owned: true)
      @member.account = current_account
      @member.user_id = current_user.id

      unless @organ.save
        render :new, locals: { model: @organ }, status: :unprocessable_entity
      end
    end

    def show
    end

    def edit
    end

    def update
      @organ.assign_attributes(organ_params)

      unless @organ.save
        render :edit, locals: { model: @organ }, status: :unprocessable_entity
      end
    end

    def destroy
      @organ.destroy
    end

    private
    def set_member
      @member = current_user.members.find params[:member_id]
    end

    def set_organ
      @organ = current_user.organs.find(params[:id])
    end

    def member_params
      p = params.fetch(:member, {}).permit(
        :identity
      )
      p.merge! owned: true
      unless p[:identity]
        p.merge! identity: current_account.identity
      end
      p
    end

    def organ_params
      params.fetch(:organ, {}).permit(
        :name,
        :logo
      )
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails_org-0.0.1 app/controllers/org/board/organs_controller.rb