class VirtualsController < ApplicationController before_action :set_virtual, only: %i[ show edit update destroy ] before_action :set_domain, only: %i[ new create edit update destroy ] # GET /virtuals or /virtuals.json def index @virtuals = Virtual.all end # GET /virtuals/1 or /virtuals/1.json def show end # GET /virtuals/new def new @virtual = Virtual.new end # GET /virtuals/1/edit def edit end # POST /virtuals or /virtuals.json def create @virtual = Virtual.new(virtual_params) @virtual.domain_id = @domain.id @virtual.email << "@" << @domain.domain respond_to do |format| if @virtual.save format.html { redirect_to domain_url(@domain), notice: "Virtual was successfully created." } format.json { render :show, status: :created, location: @virtual } else format.html { render :new, status: :unprocessable_entity } format.json { render json: @virtual.errors, status: :unprocessable_entity } end end end # PATCH/PUT /virtuals/1 or /virtuals/1.json def update respond_to do |format| if @virtual.update(virtual_params) format.html { redirect_to domain_url(@domain), notice: "Virtual was successfully updated." } format.json { render :show, status: :ok, location: @virtual } else format.html { render :edit, status: :unprocessable_entity } format.json { render json: @virtual.errors, status: :unprocessable_entity } end end end # DELETE /virtuals/1 or /virtuals/1.json def destroy @virtual.destroy respond_to do |format| format.html { redirect_to domain_url(@domain), notice: "Virtual was successfully destroyed." } format.json { head :no_content } end end private # Use callbacks to share common setup or constraints between actions. def set_virtual @virtual = Virtual.find(params[:id]) end def set_domain @domain = Domain.find(params[:domain_id]) end # Only allow a list of trusted parameters through. def virtual_params params.require(:virtual).permit(:email, :destination) end end