From f76b125f8465675ad4c9fd5cbb9d88323c9aee30 Mon Sep 17 00:00:00 2001 From: "nedim.uka" Date: Fri, 22 Oct 2021 17:37:32 +0200 Subject: [PATCH] Added device_jobs table --- app/controllers/device_jobs_controller.rb | 51 +++++++++++++++++++ app/models/device_job.rb | 2 + config/routes.rb | 1 + .../20211021061911_create_device_jobs.rb | 11 ++++ .../device_jobs_controller_test.rb | 38 ++++++++++++++ test/fixtures/device_jobs.yml | 11 ++++ test/models/device_job_test.rb | 7 +++ 7 files changed, 121 insertions(+) create mode 100644 app/controllers/device_jobs_controller.rb create mode 100644 app/models/device_job.rb create mode 100644 db/migrate/20211021061911_create_device_jobs.rb create mode 100644 test/controllers/device_jobs_controller_test.rb create mode 100644 test/fixtures/device_jobs.yml create mode 100644 test/models/device_job_test.rb diff --git a/app/controllers/device_jobs_controller.rb b/app/controllers/device_jobs_controller.rb new file mode 100644 index 0000000..d78590e --- /dev/null +++ b/app/controllers/device_jobs_controller.rb @@ -0,0 +1,51 @@ +class DeviceJobsController < ApplicationController + before_action :set_device_job, only: [:show, :update, :destroy] + + # GET /device_jobs + def index + @device_jobs = DeviceJob.all + + render json: @device_jobs + end + + # GET /device_jobs/1 + def show + render json: @device_job + end + + # POST /device_jobs + def create + @device_job = DeviceJob.new(device_job_params) + + if @device_job.save + render json: @device_job, status: :created, location: @device_job + else + render json: @device_job.errors, status: :unprocessable_entity + end + end + + # PATCH/PUT /device_jobs/1 + def update + if @device_job.update(device_job_params) + render json: @device_job + else + render json: @device_job.errors, status: :unprocessable_entity + end + end + + # DELETE /device_jobs/1 + def destroy + @device_job.destroy + end + + private + # Use callbacks to share common setup or constraints between actions. + def set_device_job + @device_job = DeviceJob.find(params[:id]) + end + + # Only allow a list of trusted parameters through. + def device_job_params + params.require(:device_job).permit(:device_id, :jobs_id, :status) + end +end diff --git a/app/models/device_job.rb b/app/models/device_job.rb new file mode 100644 index 0000000..98d460e --- /dev/null +++ b/app/models/device_job.rb @@ -0,0 +1,2 @@ +class DeviceJob < ApplicationRecord +end diff --git a/config/routes.rb b/config/routes.rb index c104e09..9558992 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,5 @@ Rails.application.routes.draw do + resources :device_jobs resources :devices resources :jobs # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html diff --git a/db/migrate/20211021061911_create_device_jobs.rb b/db/migrate/20211021061911_create_device_jobs.rb new file mode 100644 index 0000000..890bdac --- /dev/null +++ b/db/migrate/20211021061911_create_device_jobs.rb @@ -0,0 +1,11 @@ +class CreateDeviceJobs < ActiveRecord::Migration[6.1] + def change + create_table :device_jobs do |t| + t.integer :device_id + t.integer :jobs_id + t.string :status + + t.timestamps + end + end +end diff --git a/test/controllers/device_jobs_controller_test.rb b/test/controllers/device_jobs_controller_test.rb new file mode 100644 index 0000000..4f2065b --- /dev/null +++ b/test/controllers/device_jobs_controller_test.rb @@ -0,0 +1,38 @@ +require "test_helper" + +class DeviceJobsControllerTest < ActionDispatch::IntegrationTest + setup do + @device_job = device_jobs(:one) + end + + test "should get index" do + get device_jobs_url, as: :json + assert_response :success + end + + test "should create device_job" do + assert_difference('DeviceJob.count') do + post device_jobs_url, params: { device_job: { device_id: @device_job.device_id, jobs_id: @device_job.jobs_id, status: @device_job.status } }, as: :json + end + + assert_response 201 + end + + test "should show device_job" do + get device_job_url(@device_job), as: :json + assert_response :success + end + + test "should update device_job" do + patch device_job_url(@device_job), params: { device_job: { device_id: @device_job.device_id, jobs_id: @device_job.jobs_id, status: @device_job.status } }, as: :json + assert_response 200 + end + + test "should destroy device_job" do + assert_difference('DeviceJob.count', -1) do + delete device_job_url(@device_job), as: :json + end + + assert_response 204 + end +end diff --git a/test/fixtures/device_jobs.yml b/test/fixtures/device_jobs.yml new file mode 100644 index 0000000..c4769f6 --- /dev/null +++ b/test/fixtures/device_jobs.yml @@ -0,0 +1,11 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + device_id: 1 + jobs_id: 1 + status: MyString + +two: + device_id: 1 + jobs_id: 1 + status: MyString diff --git a/test/models/device_job_test.rb b/test/models/device_job_test.rb new file mode 100644 index 0000000..590c1f8 --- /dev/null +++ b/test/models/device_job_test.rb @@ -0,0 +1,7 @@ +require "test_helper" + +class DeviceJobTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end