class ClientsController < ApplicationController before_action :set_client, only: [:show, :edit, :update, :destroy] # GET /clients # GET /clients.json def index @clients = Client.all.page(params[:page]) end # GET /clients/1 # GET /clients/1.json def show end # GET /clients/new def new @client = Client.new end # GET /clients/1/edit def edit end # POST /clients # POST /clients.json def create @client = Client.new(client_params) cipher = OpenSSL::Cipher::Cipher.new("aes-256-cbc") secrect_key = cipher.random_key @client.secrect_key = secrect_key respond_to do |format| if @client.save format.html { redirect_to @client, notice: 'Client was successfully created.' } format.json { render :show, status: :created, location: @client } else format.html { render :new } format.json { render json: @client.errors, status: :unprocessable_entity } end end end # PATCH/PUT /clients/1 # PATCH/PUT /clients/1.json def update name=client_params['name'].delete(' ') find_client=Client.find_by_name(name) check=true if !find_client.nil? if find_client.id !=@client.id check=false @client.errors.add(:name,"This client name is already taken.") end end respond_to do |format| if check && @client.update(client_params) format.html { redirect_to @client, notice: 'Client was successfully updated.' } format.json { render :show, status: :ok, location: @client } else format.html { render :edit } format.json { render json: @client.errors, status: :unprocessable_entity } end end end # DELETE /clients/1 # DELETE /clients/1.json def destroy message="Client was successfully destroyed." find_batch=Batch.find_by_id(@client.id) if !find_batch.nil? message='Unable to delete client named '+ @client.name.to_s+'.' else @client.destroy end respond_to do |format| format.html { redirect_to clients_url, notice: message } format.json { head :no_content } end end private # Use callbacks to share common setup or constraints between actions. def set_client @client = Client.find(params[:id]) end # Never trust parameters from the scary internet, only allow the white list through. def client_params params.require(:client).permit(:name,:email, :phone, :address,:location_code) end end