Sha256: 9589f0d3604a43e0094788158c5134c65ee94d0253199212f033c0c3cd2f3e34

Contents?: true

Size: 1.97 KB

Versions: 5

Compression:

Stored size: 1.97 KB

Contents

require_dependency "apidae/application_controller"

module Apidae
  class ProjectsController < ApplicationController
    before_action :set_project, only: [:edit, :update, :destroy]

    def index
      if user_is_admin?
        @projects = Project.all
      else
        @projects = Project.where(apidae_id: apidae_user.apidae_projects_ids)
      end
    end

    def new
      session[:referrer] = request.referrer.split('?').first unless request.referrer.blank?
      @project = Project.new(locales: [DEFAULT_LOCALE], versions: [DEFAULT_VERSION])
    end

    def create
      if Project.find_by_apidae_id(project_params[:apidae_id])
        @project = Project.find_by_apidae_id(project_params[:apidae_id])
        update_project
      else
        @project = Project.new(project_params)
        if @project.save
          referrer = (session.delete(:referrer) || projects_url)
          redirect_to (referrer + "?apidae_project_id=#{@project.id}"), notice: 'Le projet a bien été créé'
        else
          flash.now[:alert] = "Une erreur s'est produite lors la création du projet"
          render :new
        end
      end
    end

    def edit
      session[:referrer] = request.referrer.split('?').first unless request.referrer.blank?
    end

    def update
      update_project
    end

    def destroy
      @project.destroy
      redirect_to request.referrer, notice: 'Le projet a bien été supprimé.'
    end

    private

    def set_project
      @project = Project.find(params[:id])
    end

    def update_project
      if @project.update(project_params)
        referrer = session.delete(:referrer)
        redirect_to (referrer + "?apidae_project_id=#{@project.id}"), notice: 'Le projet a bien été mis à jour'
      else
        flash.now[:alert] = "Une erreur s'est produite lors la mise à jour du projet"
        render :edit
      end
    end

    def project_params
      params.require(:project).permit(:name, :api_key, :apidae_id, locales: [], versions: [])
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
apidae-1.0.5 app/controllers/apidae/projects_controller.rb
apidae-1.0.4 app/controllers/apidae/projects_controller.rb
apidae-1.0.3 app/controllers/apidae/projects_controller.rb
apidae-1.0.2 app/controllers/apidae/projects_controller.rb
apidae-1.0.0 app/controllers/apidae/projects_controller.rb