From f2ee3ca8ffa28d0d837bf4265818e631f382295c Mon Sep 17 00:00:00 2001
From: Dominik Felczak <dfelczak@live.com>
Date: Tue, 16 May 2017 15:03:13 +0200
Subject: [PATCH 1/3] update seeds

---
 db/seeds.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/db/seeds.rb b/db/seeds.rb
index 8cbe1ba..f9459e3 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -13,6 +13,6 @@
 end
 
 25.times do |n|
-  u = User.create!(email: "user#{n}@example.com", password: 'Secret123', confirmed_at: Time.now)
+  u = User.create!(email: "user#{n}@example.com", password: 'Secret123', confirmed_at: Time.now, tokens: nil)
   u.add_role n == 0 ? :admin : :user
 end

From 0fe64b8dfdfde4d7a514a41fb2aa2a283dc41584 Mon Sep 17 00:00:00 2001
From: Dominik Felczak <dfelczak@live.com>
Date: Tue, 16 May 2017 15:19:26 +0200
Subject: [PATCH 2/3] adds employee model, table, controller

---
 app/controllers/employee_controller.rb        |  2 +
 app/models/employee.rb                        |  3 +
 app/resources/employee_resource.rb            |  2 +
 .../20170516130923_add_employee_table.rb      | 24 +++++++
 db/structure.sql                              | 68 ++++++++++++++++++-
 test/controllers/category_controller_test.rb  |  7 ++
 test/controllers/employee_controller_test.rb  |  7 ++
 7 files changed, 110 insertions(+), 3 deletions(-)
 create mode 100644 app/controllers/employee_controller.rb
 create mode 100644 app/models/employee.rb
 create mode 100644 app/resources/employee_resource.rb
 create mode 100644 db/migrate/20170516130923_add_employee_table.rb
 create mode 100644 test/controllers/category_controller_test.rb
 create mode 100644 test/controllers/employee_controller_test.rb

diff --git a/app/controllers/employee_controller.rb b/app/controllers/employee_controller.rb
new file mode 100644
index 0000000..3e7a767
--- /dev/null
+++ b/app/controllers/employee_controller.rb
@@ -0,0 +1,2 @@
+class EmployeeController < ApplicationController
+end
diff --git a/app/models/employee.rb b/app/models/employee.rb
new file mode 100644
index 0000000..86349f0
--- /dev/null
+++ b/app/models/employee.rb
@@ -0,0 +1,3 @@
+class Employee < ApplicationRecord
+  has_many :orders
+end
diff --git a/app/resources/employee_resource.rb b/app/resources/employee_resource.rb
new file mode 100644
index 0000000..80328db
--- /dev/null
+++ b/app/resources/employee_resource.rb
@@ -0,0 +1,2 @@
+class EmployeeResource < JSONAPI::Resource
+end
diff --git a/db/migrate/20170516130923_add_employee_table.rb b/db/migrate/20170516130923_add_employee_table.rb
new file mode 100644
index 0000000..60e4829
--- /dev/null
+++ b/db/migrate/20170516130923_add_employee_table.rb
@@ -0,0 +1,24 @@
+class AddEmployeeTable < ActiveRecord::Migration[5.0]
+  def change
+    create_table :employees do |t|
+      t.string   :last_name
+      t.string   :first_name
+      t.string   :title
+      t.string   :title_of_courtesy
+      t.date     :birth_date
+      t.date     :hire_date
+      t.string   :address
+      t.string   :city
+      t.string   :region
+      t.string   :postal_code
+      t.string   :country
+      t.string   :home_phone
+      t.string   :extension
+      t.string   :photo
+      t.text     :notes
+      t.integer  :reports_to
+      t.datetime :created_at
+      t.datetime :updated_at
+    end
+  end
+end
diff --git a/db/structure.sql b/db/structure.sql
index e734ac0..c8839de 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -2,8 +2,8 @@
 -- PostgreSQL database dump
 --
 
--- Dumped from database version 9.6.2
--- Dumped by pg_dump version 9.6.2
+-- Dumped from database version 9.6.3
+-- Dumped by pg_dump version 9.6.3
 
 SET statement_timeout = 0;
 SET lock_timeout = 0;
@@ -109,6 +109,52 @@ CREATE SEQUENCE comments_id_seq
 ALTER SEQUENCE comments_id_seq OWNED BY comments.id;
 
 
+--
+-- Name: employees; Type: TABLE; Schema: public; Owner: -
+--
+
+CREATE TABLE employees (
+    id integer NOT NULL,
+    last_name character varying,
+    first_name character varying,
+    title character varying,
+    title_of_courtesy character varying,
+    birth_date date,
+    hire_date date,
+    address character varying,
+    city character varying,
+    region character varying,
+    postal_code character varying,
+    country character varying,
+    home_phone character varying,
+    extension character varying,
+    photo character varying,
+    notes text,
+    reports_to integer,
+    created_at timestamp without time zone,
+    updated_at timestamp without time zone
+);
+
+
+--
+-- Name: employees_id_seq; Type: SEQUENCE; Schema: public; Owner: -
+--
+
+CREATE SEQUENCE employees_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+--
+-- Name: employees_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
+--
+
+ALTER SEQUENCE employees_id_seq OWNED BY employees.id;
+
+
 --
 -- Name: posts; Type: TABLE; Schema: public; Owner: -
 --
@@ -255,6 +301,13 @@ ALTER TABLE ONLY categories ALTER COLUMN id SET DEFAULT nextval('categories_id_s
 ALTER TABLE ONLY comments ALTER COLUMN id SET DEFAULT nextval('comments_id_seq'::regclass);
 
 
+--
+-- Name: employees id; Type: DEFAULT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY employees ALTER COLUMN id SET DEFAULT nextval('employees_id_seq'::regclass);
+
+
 --
 -- Name: posts id; Type: DEFAULT; Schema: public; Owner: -
 --
@@ -300,6 +353,14 @@ ALTER TABLE ONLY comments
     ADD CONSTRAINT comments_pkey PRIMARY KEY (id);
 
 
+--
+-- Name: employees employees_pkey; Type: CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY employees
+    ADD CONSTRAINT employees_pkey PRIMARY KEY (id);
+
+
 --
 -- Name: posts posts_pkey; Type: CONSTRAINT; Schema: public; Owner: -
 --
@@ -423,6 +484,7 @@ INSERT INTO "schema_migrations" (version) VALUES
 ('20170328194726'),
 ('20170418135338'),
 ('20170504204400'),
-('20170508090812');
+('20170508090812'),
+('20170516130923');
 
 
diff --git a/test/controllers/category_controller_test.rb b/test/controllers/category_controller_test.rb
new file mode 100644
index 0000000..70bdf31
--- /dev/null
+++ b/test/controllers/category_controller_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class CategoryControllerTest < ActionDispatch::IntegrationTest
+  # test "the truth" do
+  #   assert true
+  # end
+end
diff --git a/test/controllers/employee_controller_test.rb b/test/controllers/employee_controller_test.rb
new file mode 100644
index 0000000..fff1809
--- /dev/null
+++ b/test/controllers/employee_controller_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class EmployeeControllerTest < ActionDispatch::IntegrationTest
+  # test "the truth" do
+  #   assert true
+  # end
+end

From 137031f9617ecc7d1b0ca52f239f79643e0802b3 Mon Sep 17 00:00:00 2001
From: Dominik Felczak <dfelczak@live.com>
Date: Tue, 16 May 2017 16:09:06 +0200
Subject: [PATCH 3/3] adds employee json resource

---
 app/controllers/employee_controller.rb  |  2 --
 app/controllers/employees_controller.rb |  3 +++
 app/models/employee.rb                  |  1 -
 app/resources/employee_resource.rb      |  1 +
 config/routes.rb                        |  1 +
 db/seeds.rb                             |  4 ++++
 spec/factories/employee.rb              | 21 +++++++++++++++++++++
 7 files changed, 30 insertions(+), 3 deletions(-)
 delete mode 100644 app/controllers/employee_controller.rb
 create mode 100644 app/controllers/employees_controller.rb
 create mode 100644 spec/factories/employee.rb

diff --git a/app/controllers/employee_controller.rb b/app/controllers/employee_controller.rb
deleted file mode 100644
index 3e7a767..0000000
--- a/app/controllers/employee_controller.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-class EmployeeController < ApplicationController
-end
diff --git a/app/controllers/employees_controller.rb b/app/controllers/employees_controller.rb
new file mode 100644
index 0000000..a3d2be8
--- /dev/null
+++ b/app/controllers/employees_controller.rb
@@ -0,0 +1,3 @@
+class EmployeesController < AuthorizedController
+  
+end
diff --git a/app/models/employee.rb b/app/models/employee.rb
index 86349f0..d5e0233 100644
--- a/app/models/employee.rb
+++ b/app/models/employee.rb
@@ -1,3 +1,2 @@
 class Employee < ApplicationRecord
-  has_many :orders
 end
diff --git a/app/resources/employee_resource.rb b/app/resources/employee_resource.rb
index 80328db..f83211a 100644
--- a/app/resources/employee_resource.rb
+++ b/app/resources/employee_resource.rb
@@ -1,2 +1,3 @@
 class EmployeeResource < JSONAPI::Resource
+  attributes :title, :created_at, :first_name
 end
diff --git a/config/routes.rb b/config/routes.rb
index 2cc3534..f90c1c6 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -5,4 +5,5 @@
   jsonapi_resources :posts
   jsonapi_resources :users
   jsonapi_resources :roles
+  jsonapi_resources :employees
 end
diff --git a/db/seeds.rb b/db/seeds.rb
index bbf7ad7..3b2eaa4 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -20,3 +20,7 @@
     tokens: nil
   ).add_role n == 0 ? :admin : :user
 end
+
+20.times do |n|
+  FactoryGirl.create(:employee)
+end
diff --git a/spec/factories/employee.rb b/spec/factories/employee.rb
new file mode 100644
index 0000000..faffd5f
--- /dev/null
+++ b/spec/factories/employee.rb
@@ -0,0 +1,21 @@
+FactoryGirl.define do
+  factory :employee do
+    last_name { Faker::Name.last_name }
+    first_name { Faker::Name.first_name }
+    title { Faker::Name.title }
+    title_of_courtesy { Faker::Name.title }
+    birth_date { Faker::Date.backward(720) }
+    hire_date { Faker::Date.backward(10) }
+    address { Faker::Address.street_address }
+    city { Faker::Address.city }
+    region { Faker::Address.state }
+    postal_code { Faker::Address.postcode }
+    country { Faker::Address.country }
+    home_phone { Faker::PhoneNumber.phone_number }
+    extension { 'jpg' }
+    photo { Faker::Placeholdit.image("50x50") }
+    notes { Faker::Lorem.paragraph }
+    created_at { Faker::Date.backward(20) }
+    updated_at { Faker::Date.backward(15) }
+  end
+end