Sha256: 2c8d497b9d9b1faffbc4b9045368873517a2a5ab099dd7e0ce553b76cbce8eeb

Contents?: true

Size: 1.5 KB

Versions: 3

Compression:

Stored size: 1.5 KB

Contents

require_dependency "bouquet/gate/application_controller"

module Bouquet
  class Gate::SalesOrdersController < ApplicationController
    before_action :set_sales_order, only: [:show, :update, :destroy]

    # GET /sales_orders
    def index
      @sales_orders = Bouquet::SalesOrder.all

      render json: @sales_orders
    end

    # GET /sales_orders/1
    def show
      render json: @sales_order
    end

    # POST /sales_orders
    def create
      @sales_order = Bouquet::SalesOrder.new(sales_order_params)
      @sales_order.shipment_date = Time.current

      if @sales_order.save
        render json: @sales_order, status: :created #, location: @sales_order
        Bouquet::Gate::ShipmentJob.perform_later(@sales_order)
      else
        render json: @sales_order.errors, status: :unprocessable_entity
      end
    end

    # PATCH/PUT /sales_orders/1
    def update
      if @sales_order.update(sales_order_params)
        render json: @sales_order
      else
        render json: @sales_order.errors, status: :unprocessable_entity
      end
    end

    # DELETE /sales_orders/1
    def destroy
      @sales_order.destroy
    end

    private
      # Use callbacks to share common setup or constraints between actions.
      def set_sales_order
        @sales_order = Bouquet::SalesOrder.find(params[:id])
      end

      # Only allow a trusted parameter "white list" through.
      def sales_order_params
        params.require(:sales_order).permit(:quantity, :shipment_date, :product_id, :customer_id)
      end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bouquet-0.2.2 gate/app/controllers/bouquet/gate/sales_orders_controller.rb
bouquet-0.2.1 gate/app/controllers/bouquet/gate/sales_orders_controller.rb
bouquet-0.2.0 gate/app/controllers/bouquet/gate/sales_orders_controller.rb