diff --git a/app/controllers/work_controller.rb b/app/controllers/work_controller.rb new file mode 100644 index 0000000..259a863 --- /dev/null +++ b/app/controllers/work_controller.rb @@ -0,0 +1,31 @@ +class WorkController < ApplicationController + def index + if params[:homie_id] + work = Work.where(homie_id: params[:homie_id].to_i).all.order(created_at: :desc) + else + work = Work.all.order(created_at: :desc) + end + + json_response work + end + + def create + work = Work.new(work_params) + + if work.save + json_response ok: true + else + error_response(:bad_request) + end + end + + private + + def work_params + params.require(:work).permit( + :description, + :amount, + :homie_id + ) + end +end \ No newline at end of file diff --git a/app/models/homie.rb b/app/models/homie.rb index 16aab9c..9d5d5f6 100644 --- a/app/models/homie.rb +++ b/app/models/homie.rb @@ -1,5 +1,6 @@ class Homie < ApplicationRecord has_many :money_moves + has_many :work belongs_to :chip def self.cash(importance) diff --git a/app/models/work.rb b/app/models/work.rb new file mode 100644 index 0000000..7f7337e --- /dev/null +++ b/app/models/work.rb @@ -0,0 +1,3 @@ +class Work < ApplicationRecord + belongs_to :homie +end \ No newline at end of file diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb index ac033bf..ab4f265 100644 --- a/config/initializers/inflections.rb +++ b/config/initializers/inflections.rb @@ -14,3 +14,7 @@ # ActiveSupport::Inflector.inflections(:en) do |inflect| # inflect.acronym 'RESTful' # end + +ActiveSupport::Inflector.inflections do |inflect| + inflect.irregular 'work', 'work' +end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 1a36dfd..e3f2417 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -2,6 +2,7 @@ Rails.application.routes.draw do constraints format: :json do scope :api do resources :money_moves + resources :work resources :chips, only: %i[index create destroy] resources :chip_values, only: %i[create update destroy] resources :homies, param: :homie_id do diff --git a/db/migrate/20200919023237_create_work.rb b/db/migrate/20200919023237_create_work.rb new file mode 100644 index 0000000..963a5f7 --- /dev/null +++ b/db/migrate/20200919023237_create_work.rb @@ -0,0 +1,11 @@ +class CreateWork < ActiveRecord::Migration[5.2] + def change + create_table :work do |t| + t.text :description + t.integer :amount + t.integer :homie_id, null: false + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 52ccf15..bc9d903 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_09_11_171657) do +ActiveRecord::Schema.define(version: 2020_09_19_023237) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -41,8 +41,6 @@ ActiveRecord::Schema.define(version: 2020_09_11_171657) do t.text "about" t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.bigint "chip_id" - t.index ["chip_id"], name: "index_homies_on_chip_id" end create_table "money_moves", force: :cascade do |t| @@ -53,6 +51,24 @@ ActiveRecord::Schema.define(version: 2020_09_11_171657) do t.datetime "updated_at", null: false end + create_table "ogs", force: :cascade do |t| + t.text "chip_name" + t.text "chip_code" + t.text "chip_symbol" + t.boolean "chip_prefixed" + t.integer "chip_scale" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + + create_table "work", force: :cascade do |t| + t.text "description" + t.integer "amount" + t.integer "homie_id", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + add_foreign_key "chip_values", "chips", column: "base_chip_id" add_foreign_key "chip_values", "chips", column: "secondary_chip_id" end