Sha256: fe7689d0fa76134e51cc907617aad54ecee4fab17c25f76fe0f88289979b038e

Contents?: true

Size: 1.84 KB

Versions: 14

Compression:

Stored size: 1.84 KB

Contents

require_dependency "apidae/application_controller"

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

    def index
      @projects = Project.all
    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

14 entries across 14 versions & 1 rubygems

Version Path
apidae-0.9.34 app/controllers/apidae/projects_controller.rb
apidae-0.9.33 app/controllers/apidae/projects_controller.rb
apidae-0.9.32 app/controllers/apidae/projects_controller.rb
apidae-0.9.31 app/controllers/apidae/projects_controller.rb
apidae-0.9.30 app/controllers/apidae/projects_controller.rb
apidae-0.9.29 app/controllers/apidae/projects_controller.rb
apidae-0.9.28 app/controllers/apidae/projects_controller.rb
apidae-0.9.27 app/controllers/apidae/projects_controller.rb
apidae-0.11.0 app/controllers/apidae/projects_controller.rb
apidae-0.10.0 app/controllers/apidae/projects_controller.rb
apidae-0.9.26 app/controllers/apidae/projects_controller.rb
apidae-0.9.25 app/controllers/apidae/projects_controller.rb
apidae-0.9.24 app/controllers/apidae/projects_controller.rb
apidae-0.9.23 app/controllers/apidae/projects_controller.rb