ecom_core 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 47ccd7e2c54144e923760559287513ba289fb117647a448890de1bcb9b971d67
4
- data.tar.gz: b8e18049239a4241bf93aec57e0a57d451edacd791e11ad51ac2daf8cfaa0854
3
+ metadata.gz: d4240e42db66c5eda785323eadc5922dea91339715bb0fb2321da303bd3c5b43
4
+ data.tar.gz: 3adef674807277970a66f1ede6c4077df5145a4766ec0c6463b6e3ae2b8b51fc
5
5
  SHA512:
6
- metadata.gz: 7cea63bfb85af16d0171286a566101ecabe2f3bceab181400d6de20dede48c5766154c26bced86d8920eb64f3bde0b7cfc98657ae003a444290c6ec488cb9723
7
- data.tar.gz: faa67d9ee5d399e3236b8d69af16c57021c464ec0a831890f3ae69b8d5710357455200cbfe7f7068124aab0aacf28e8e12da6aa287a1dcf7e7d63d0bdd3c11b4
6
+ metadata.gz: c6e9ecb094e97652660dfd550fe8e1a205f9ae5492db1247eb9c3713593e36e978398467efa15e825454ca2745b0d53d00ca38bc28f4c8b22df8eb3952e952db
7
+ data.tar.gz: 2395170de17d0c522fab52226f4d01560089d17499ed94273d3c1e0564d6ea1339c0af234a5d7cf585d598fe0777a5103386ffb009cef8c92cd92e8ea0cc81fe
@@ -0,0 +1,44 @@
1
+ module Ecom
2
+ module Core
3
+ module Lookupable
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ before_action :set_lookup, only: [:update]
8
+ end
9
+
10
+ def index
11
+ render json: ResourceTypeSerializer.new(@clazz.all)
12
+ end
13
+
14
+ def create
15
+ lookup = @clazz.new(lookup_params)
16
+ if lookup.save
17
+ render json: LookupSerializer.new(lookup), status: :created
18
+ else
19
+ render json: { success: false, errors: lookup.errors }, status: :unprocessable_entity
20
+ end
21
+ end
22
+
23
+ def update
24
+ lookup = @clazz.find(params[:id])
25
+ if lookup.update(lookup_params)
26
+ render json: LookupSerializer.new(lookup)
27
+ else
28
+ render json: { success: false, errors: lookup.errors }, status: :unprocessable_entity
29
+ end
30
+ end
31
+
32
+
33
+ private
34
+
35
+ def set_clazz
36
+ @clazz = "Ecom::Core::#{controller_name.classify}".constantize
37
+ end
38
+
39
+ def lookup_params
40
+ params.require(:lookup).permit(:name)
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,7 @@
1
+ module Ecom
2
+ module Core
3
+ class EquipmentTypesController < ApplicationController
4
+ include ResourceTypeable
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Ecom
2
+ module Core
3
+ class MaterialTypesController < ApplicationController
4
+ include ResourceTypeable
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Ecom
2
+ module Core
3
+ class Lookup < ApplicationRecord
4
+ validates :name, :type, presence: true, uniqueness: { scope: %i[name type] }
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ module Ecom
2
+ module Core
3
+ class OvertimeType < Lookup
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,8 @@
1
+ module Ecom
2
+ module Core
3
+ class LookupSerializer
4
+ include FastJsonapi::ObjectSerializer
5
+ attributes :name, :type
6
+ end
7
+ end
8
+ end
data/config/routes.rb CHANGED
@@ -1,3 +1,5 @@
1
1
  Ecom::Core::Engine.routes.draw do
2
2
  resources :crew_types
3
+ resources :equipment_types
4
+ resources :material_types
3
5
  end
@@ -0,0 +1,10 @@
1
+ class CreateEcomCoreLookups < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :ecom_core_lookups do |t|
4
+ t.string :name, null: false
5
+ t.string :type, null: false
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -1,5 +1,5 @@
1
1
  module Ecom
2
2
  module Core
3
- VERSION = '1.0.0'.freeze
3
+ VERSION = '1.0.1'.freeze
4
4
  end
5
5
  end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :lookup, class: 'Ecom::Core::Lookup' do
3
+ name { FFaker::Name.name }
4
+ type { 'Ecom::Core::Lookup' }
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ FactoryBot.define do
2
+ factory :overtime_type, class: 'Ecom::Core::OvertimeType', parent: :lookup do
3
+ type { 'Ecom::Core::OvertimeType' }
4
+ end
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecom_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-31 00:00:00.000000000 Z
11
+ date: 2020-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -189,9 +189,12 @@ files:
189
189
  - MIT-LICENSE
190
190
  - README.md
191
191
  - Rakefile
192
+ - app/controllers/concerns/ecom/core/lookupable.rb
192
193
  - app/controllers/concerns/ecom/core/resource_typeable.rb
193
194
  - app/controllers/ecom/core/application_controller.rb
194
195
  - app/controllers/ecom/core/crew_types_controller.rb
196
+ - app/controllers/ecom/core/equipment_types_controller.rb
197
+ - app/controllers/ecom/core/material_types_controller.rb
195
198
  - app/models/ecom/core/application_module.rb
196
199
  - app/models/ecom/core/application_record.rb
197
200
  - app/models/ecom/core/crew.rb
@@ -199,8 +202,10 @@ files:
199
202
  - app/models/ecom/core/crew_type.rb
200
203
  - app/models/ecom/core/currency.rb
201
204
  - app/models/ecom/core/equipment_type.rb
205
+ - app/models/ecom/core/lookup.rb
202
206
  - app/models/ecom/core/material_type.rb
203
207
  - app/models/ecom/core/menu.rb
208
+ - app/models/ecom/core/overtime_type.rb
204
209
  - app/models/ecom/core/product_type.rb
205
210
  - app/models/ecom/core/project.rb
206
211
  - app/models/ecom/core/resource_type.rb
@@ -215,9 +220,11 @@ files:
215
220
  - app/models/ecom/core/work_component_template.rb
216
221
  - app/models/ecom/core/work_product.rb
217
222
  - app/models/ecom/core/work_product_template.rb
223
+ - app/serializers/ecom/core/lookup_serializer.rb
218
224
  - app/serializers/ecom/core/resource_type_serializer.rb
219
225
  - config/database.ci.yml
220
226
  - config/routes.rb
227
+ - db/migrate/20190101112620_create_ecom_core_lookups.rb
221
228
  - db/migrate/20191119010518_create_ecom_core_task_template_types.rb
222
229
  - db/migrate/20191119012030_create_ecom_core_task_templates.rb
223
230
  - db/migrate/20191119013236_create_ecom_core_work_product_templates.rb
@@ -249,8 +256,10 @@ files:
249
256
  - spec/factories/ecom/core/crews.rb
250
257
  - spec/factories/ecom/core/currencies.rb
251
258
  - spec/factories/ecom/core/equipment_types.rb
259
+ - spec/factories/ecom/core/lookups.rb
252
260
  - spec/factories/ecom/core/material_types.rb
253
261
  - spec/factories/ecom/core/menus.rb
262
+ - spec/factories/ecom/core/overtime_types.rb
254
263
  - spec/factories/ecom/core/product_types.rb
255
264
  - spec/factories/ecom/core/projects.rb
256
265
  - spec/factories/ecom/core/resource_types.rb