ecom_core 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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